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