版本控制——在Mercurial中,当历史记录包含合并时,如何编辑过去的变更集



我有以下历史:

@    4 changesABC tip
|
| o  3 changesAB
| |
o |  2 changesAC
|/
o  1 changeA
|
o  0 initial.

现在我想对变更集1进行更改,以便更改反映在其后代中。如果我尝试:

hg histedit 1

:

abort: cannot edit history that contains merges

有办法解决这个问题吗?我发现这种情况很常见;

没有简单的方法可以做到这一点,对于进化扩展来说也是如此(注意,它仍然是实验性的)。然而,当你在进化活动中尝试同样的事情时,它建议:

Abbort: no support for evolving merge changesets yet (Redo the merge and use 'hg prune <old> --succ <new>' to obsolete the old one)

启用了evolve扩展的工作流将看起来像这样: hg up 1 (make changes) hg evolve -a 然后,您需要按照建议重新进行合并,然后您应该完成(请使用适当的修订,只需用心键入): hg merge -r6 hg prune 4 --succ NEW_MERGE_CHANGESET 请注意,这只适用于非公共更改集,因此您需要在这些操作之前强制进行阶段更改。

相关内容

最新更新