Version control 在Mercurial中,当历史记录包含合并时,如何编辑过去的变更集?

Version control 在Mercurial中,当历史记录包含合并时,如何编辑过去的变更集?,version-control,merge,mercurial,dvcs,Version Control,Merge,Mercurial,Dvcs,我有以下历史: @ 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 有办法解决这个问题吗?我发现这种情况非常普遍;如果我能做到这一点,那将是非常有帮助的。没

我有以下历史:

@    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

有办法解决这个问题吗?我发现这种情况非常普遍;如果我能做到这一点,那将是非常有帮助的。

没有简单的方法可以做到这一点,这对于进化扩展也是如此(请注意,它仍然是实验性的)。但是,当您使用evolve active尝试相同的事情时,它建议:

Abbort:还不支持不断发展的合并变更集
(重做合并并使用“hg prune--succ”废弃旧的合并)

启用evolve扩展的工作流将如下所示:

hg up 1
(进行更改)
hg-a
然后,您需要按照建议重新执行合并,然后您应该完成(请使用适当的修订,只需用心键入):

hg合并-r6
hg prune 4--成功的新\u合并\u变更集

请记住,这只适用于非公共变更集,因此您需要在这些操作之前强制进行阶段更改。

Thanx。Mercurial/Evolve不支持我认为如此重要的功能,这真是太糟糕了。