我想移植一个合并变更集:

$ hg graft -UD --log -r 1909
skipping ungraftable merge revision 1909


我的解决方法是:

 hg export -r 1909 | hg import -
 hg commit -m"$(hg log -r 1909 --template 'grafted {node}')"


是否有理由不支持嫁接合并变更集?

最佳答案

合并变更集有两个父项,因此有两种不同的方式来查看变更。默认情况下,如果您使用hg diff -c <changeset>,它将显示与第一个父目录相比的差异,第一个父目录通常代表合并时的工作目录。如果该假设是错误的,则是引入错误的简便方法。

这就引出了一个问题,为什么您要移植合并变更集而不是原始变更集本身。如果您要移植一系列变更集,并且正在使用合并变更集“汇总”该系列,则可以一次移植原始的多个变更:hg graft "1000::1005"

就个人而言,我通常将hg rebase用于此类任务,尽管这需要在hgrc或mercurial.ini中启用rebase扩展:

[extensions]
rebase=

关于mercurial - 如何使用Mercurial嫁接合并变更集,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16853597/

10-15 02:45