2012-06-12 32 views
8

我正在使用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 

我找不到任何记录,说明这一点。我可以找到源代码,但如果有人能够解释这一点,那么也许会对别人有所帮助。

请问我需要记住移植手术的顺序吗?我做错了吗?

+0

就我而言,这意味着我试图将变更集移回到它已经在的分支中。 – Noumenon

回答

11

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'. 

所以移植拒绝,因为他们是在您目前的变更祖先,让您的当前变更的这些修订后裔,有你的祖先是你的后裔被证明行不通在“回到未来”电影中。 ;)

+1

是的,因为某种原因,它被称为Directed _Acyclic_ G​​raph(DAG)。 :) – Helgi

+0

谢谢,这是有道理的,这就是我的想法。 – jcollum

+0

@jcollum:然后考虑接受答案。这样,它将不会在未答复选项卡上。 – Helgi