我正在使用graft命令将4个变更集从BranchA拉入BranchB。当我这样做时,有些被嫁接了,而有些则没有:

PS D:\Dev\ProjectAlpha> hg graft 5f403abb2b24
skipping ancestor revision 15911
PS D:\Dev\ProjectAlpha> hg graft 535ff712c5a3
grafting revision 15925
PS D:\Dev\ProjectAlpha> hg graft cf42b7113e02
grafting revision 15931
PS D:\Dev\ProjectAlpha> hg graft 6920922ee602
skipping ancestor revision 15910


我找不到任何解释此问题的文档。我可以找到来源,但是如果有人可以解释这个问题,也许对其他人会有所帮助。

我需要牢记关于移植的操作顺序吗?我做错了吗?

最佳答案

来自hg help glossary

Ancestor
    Any changeset that can be reached by an unbroken chain of parent
    changesets from a given changeset. More precisely, the ancestors of a
    changeset can be defined by two properties: a parent of a changeset is
    an ancestor, and a parent of an ancestor is an ancestor. See also:
    'Descendant'.


因此,graft拒绝对您当前变更集的这些后代进行修订,因为它们已经是您当前变更集的祖先,并且在《回到未来》电影中显示,让您的祖先成为您的后代是行不通的。 ;)

08-26 01:46