Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

what does 'skipping ancestor revision' mean when using 'graft'?

Tags:

mercurial

I'm using the graft command to pull 4 changesets from a BranchA into BranchB. When I do, some are grafted and some are not:

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

I can't find anything documented that explains this. I can find the source, but maybe it'd be helpful to someone else if someone could come along and explain this.

Is there an order of operations with graft that I need to keep in mind? Am I doing it wrong?

like image 599
jcollum Avatar asked Jun 12 '12 17:06

jcollum


1 Answers

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

so graft is refusing to make those revisions descendants of your current changeset because they're already ancestors of your current changeset, and having your ancestors be your descendants was shown to not work in the Back to the Future movies. ;)

like image 152
Ry4an Brase Avatar answered Nov 22 '22 08:11

Ry4an Brase