2010-03-18 80 views
10

我一直在玩Mercurial和mercurial队列,现在有一个相当合理的工作版本。然而,在我提交补丁之前,我希望将这个spagetti历史记录合并到离散的逻辑步骤中,而不是像现在这样半重叠的重复执行 - 撤销 - 重做 - 稍微不同的混淆,只要减少补丁的数量。Mercurial队列:合并补丁

我该怎么做?

回答

8

hg qfold是要走的路。要非常小心。确保你已经阅读了所有的instructions。这是合理的版本的patchqueue太(为嵌套repoository),所以你有备份:

汞qinit [-c]

初始化一个新的队列库

队列库是由无版本默认为 。如果指定-c为 ,则qinit将为修补程序创建单独的嵌套存储库 (qinit -c也可稍后运行以将 未版本化的修补程序存储库转换为版本化存储库)。 您可以使用qcommit将更改提交到此队列存储库。

+0

谢谢,工作!其他人声称'hg export ...> combined.patch'不需要MQ就可以达到同样的效果 - 是吗? – 2010-03-20 18:45:18

+0

随着mercurial 1.5以上版本的推出,您还可以在一行中导入多个修补程序,因此不需要将它们合并到导出中。您仍然需要MQ来剥离您的更改,或者您需要克隆一个干净的存储库并在其中应用合并的修补程序,然后放弃您的分支。太多工作恕我直言。 – 2010-03-20 19:02:06