如何从 MQ 存储库的修订历史中删除变更集?
How can one remove changesets from revision history of MQ repository?
我有一个 Mercurial 存储库。它有一个补丁队列(它本身是一个包含补丁的存储库)。不幸的是,我对 MQ 执行了太多难看的提交(使用 hg commit --mq
命令)。
如果我 运行 hg history --mq
命令,它将打印大量不必要的变更集,比如 A, B, B1, B2, B3, B4, C, D 。
我只想摆脱那些 B1、B2、B3 和 B4,但我不想删除最新的 C 和 D。只是那些中间变更集。
我怎样才能达到预期的效果?
假设后面的mq changeset之间没有冲突,就很简单了。
mq 方法是使用 hg qdelete PATCH-ID
并删除您想要查看的补丁。必须不应用补丁。
或者,您可以使用正常的 hg 方式来编辑您的 mq 存储库:
- 取消应用所有 MQ 变更集:
hg qpop --all
- 编辑 .hg/patches/series 文件并删除您想要删除的补丁行
- 检查所有剩余的补丁是否干净地应用,最好一个一个地完成,因此对每个补丁进行
hg qpush
。如果有任何冲突,请立即修复。
- 将更改提交到 .hg/patches
中的 mq 存储库
如果您需要中间补丁之一,请检查 hg qfold
和朋友。
我有一个 Mercurial 存储库。它有一个补丁队列(它本身是一个包含补丁的存储库)。不幸的是,我对 MQ 执行了太多难看的提交(使用 hg commit --mq
命令)。
如果我 运行 hg history --mq
命令,它将打印大量不必要的变更集,比如 A, B, B1, B2, B3, B4, C, D 。
我只想摆脱那些 B1、B2、B3 和 B4,但我不想删除最新的 C 和 D。只是那些中间变更集。
我怎样才能达到预期的效果?
假设后面的mq changeset之间没有冲突,就很简单了。
mq 方法是使用 hg qdelete PATCH-ID
并删除您想要查看的补丁。必须不应用补丁。
或者,您可以使用正常的 hg 方式来编辑您的 mq 存储库:
- 取消应用所有 MQ 变更集:
hg qpop --all
- 编辑 .hg/patches/series 文件并删除您想要删除的补丁行
- 检查所有剩余的补丁是否干净地应用,最好一个一个地完成,因此对每个补丁进行
hg qpush
。如果有任何冲突,请立即修复。 - 将更改提交到 .hg/patches 中的 mq 存储库
如果您需要中间补丁之一,请检查 hg qfold
和朋友。