如何从MQ存储库的修订历史中删除更改集?

时间:2016-01-03 07:36:52

标签: version-control mercurial mercurial-queue mercurial-extension

我有一个Mercurial存储库。它有一个补丁队列(它本身就是一个包含补丁的存储库)。不幸的是,我对MQ执行了太多难看的提交(使用hg commit --mq命令)。 如果我运行hg history --mq命令,它将打印大量不必要的变更集,例如A,B,B1,B2,B3,B4,C,D。 我只是想摆脱那些B1,B2,B3和B4,但我不想删除最新的C和D.只是那些中间变更集。 我怎样才能达到预期效果?

1 个答案:

答案 0 :(得分:1)

假设后续的mq变更集之间没有冲突,那很简单。

mq方式是将hg qdelete PATCH-ID与要删除的修补程序一起使用。必须不应用补丁。

或者,您可以使用普通的hg方式编辑mq存储库:

  • 取消应用所有mq更改集:hg qpop --all
  • 编辑.hg / patches / series文件并删除要删除的修补程序行
  • 检查所有剩余的补丁是否干净利落,最好逐一完成,从而为每个补丁执行hg qpush。现在应该有任何冲突吗。
  • 将更改提交到.hg / patches
  • 中的mq存储库

如果您需要其中一个中间补丁,请检查hg qfold和朋友。