我经常使用 mercurial 队列,我对它们非常满意,但是我发现有一个工作流程过于复杂。有时我正在开发一个补丁,然后我意识到我一直在做一些应该在一个单独的补丁中的东西(比如当我修复了我在开发一个功能时发现的错误,或者为我实际上想在一个单独的补丁中拥有)。
因此,工作目录的状态是:已应用补丁 A、B、C,加上应放入补丁 C 的更改,以及应放入新补丁 D 的更改。
我目前的工作流程如下:
hg qnew D.patch files-for-patch-D..
hg qnew temp.patch # changes for patch C
hg qpop
hg qpop
# Now I'm on patch C
hg qfold temp.patch # Integrate changes into patch C
# Here I could have patch errors..
hg qpush
我知道我也可以这样做
hg qrefresh files-for-patch-C..
hg qnew -m "..." new-feature.patch
这种方法的缺点是补丁 C 的文件数量通常很大,而且必须将所有文件都放在命令行上很尴尬。相比之下,补丁 D 的文件数量通常很少。
有没有比我上面概述的更好的方法来实现这一点?