2012-06-12 30 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