我正在使用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拒绝对您当前变更集的这些后代进行修订,因为它们已经是您当前变更集的祖先,并且在《回到未来》电影中显示,让您的祖先成为您的后代是行不通的。 ;)