我最近开始使用 MQ,因为我喜欢在不影响 repo 的情况下处理隔离补丁和提交的想法,直到变更集足够细化。在此之前,我曾经使用 Mercurial 的货架扩展,但发现它有点不稳定。我仍在 MQ 中试图弄清楚的是如何将补丁彼此分开,并以不特定的顺序应用它们,并跨不同的分支应用它们。这是我的正常流程-
1.开始制作新补丁:
hg qnew fix-bug-1234 -m "fix bug 1234"
# do some work
hg qrefresh
2.获得一个新的功能/错误来处理:
hg qpop fix-bug-1234
hg qnew some-feature -m "implement feature X"
# some work on feature X (perhaps in a different branch)
hg qrefresh
3.在这一点上,我想回到 bugfix 的工作,并把功能工作放在一边。我认为这很简单:
hg qpop some-feature
hg qpush fix-bug-1234
# wrap up bug fix
hg qfinish fix-bug-1234
# get back to work on feature
但是,MQ 似乎总是使用该系列中创建的最新补丁,并且无论我使用的是什么 qpop/qpush 命令都应用它。我应该注意,我处理的文件也是完全独立的(尽管它们有时可能是相同的)。
我在这里错过了什么吗?我应该hg qqueue
为此使用吗?谢谢。