0

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

4

1 回答 1

1

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

mq 方法是hg qdelete PATCH-ID与您希望删除的补丁一起使用。必须不应用补丁。

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

  • 取消应用所有 mq 变更集:hg qpop --all
  • 编辑 .hg/patches/series 文件并删除您希望删除的补丁行
  • 检查所有剩余的补丁是否干净地应用,最好一个一个地完成,因此hg qpush每个都做一个。如果有任何冲突现在解决它。
  • 将更改提交到 .hg/patches 中的 mq 存储库

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

于 2016-01-03T22:26:21.717 回答