Show More
@@ -1184,9 +1184,17 def graft(repo, ctx, pctx, labels): | |||||
1184 | labels - merge labels eg ['local', 'graft'] |
|
1184 | labels - merge labels eg ['local', 'graft'] | |
1185 |
|
1185 | |||
1186 | """ |
|
1186 | """ | |
|
1187 | # If we're grafting a descendant onto an ancestor, be sure to pass | |||
|
1188 | # mergeancestor=True to update. This does two things: 1) allows the merge if | |||
|
1189 | # the destination is the same as the parent of the ctx (so we can use graft | |||
|
1190 | # to copy commits), and 2) informs update that the incoming changes are | |||
|
1191 | # newer than the destination so it doesn't prompt about "remote changed foo | |||
|
1192 | # which local deleted". | |||
|
1193 | mergeancestor = repo.changelog.isancestor(repo['.'].node(), ctx.node()) | |||
1187 |
|
1194 | |||
1188 | stats = update(repo, ctx.node(), True, True, False, pctx.node(), |
|
1195 | stats = update(repo, ctx.node(), True, True, False, pctx.node(), | |
1189 | labels=labels) |
|
1196 | mergeancestor=mergeancestor, labels=labels) | |
|
1197 | ||||
1190 | # drop the second merge parent |
|
1198 | # drop the second merge parent | |
1191 | repo.dirstate.beginparentchange() |
|
1199 | repo.dirstate.beginparentchange() | |
1192 | repo.setparents(repo['.'].node(), nullid) |
|
1200 | repo.setparents(repo['.'].node(), nullid) |
@@ -730,3 +730,29 Empty graft | |||||
730 | $ hg graft -f 27 |
|
730 | $ hg graft -f 27 | |
731 | grafting 27:3d35c4c79e5a "28" |
|
731 | grafting 27:3d35c4c79e5a "28" | |
732 | note: graft of 27:3d35c4c79e5a created no changes to commit |
|
732 | note: graft of 27:3d35c4c79e5a created no changes to commit | |
|
733 | ||||
|
734 | $ cd .. | |||
|
735 | ||||
|
736 | Graft to duplicate a commit | |||
|
737 | ||||
|
738 | $ hg init graftsibling | |||
|
739 | $ cd graftsibling | |||
|
740 | $ touch a | |||
|
741 | $ hg commit -qAm a | |||
|
742 | $ touch b | |||
|
743 | $ hg commit -qAm b | |||
|
744 | $ hg log -G -T '{rev}\n' | |||
|
745 | @ 1 | |||
|
746 | | | |||
|
747 | o 0 | |||
|
748 | ||||
|
749 | $ hg up -q 0 | |||
|
750 | $ hg graft -r 1 | |||
|
751 | grafting 1:0e067c57feba "b" (tip) | |||
|
752 | $ hg log -G -T '{rev}\n' | |||
|
753 | @ 2 | |||
|
754 | | | |||
|
755 | | o 1 | |||
|
756 | |/ | |||
|
757 | o 0 | |||
|
758 |
@@ -70,8 +70,6 edit the history | |||||
70 | > pick 652413bf663e f |
|
70 | > pick 652413bf663e f | |
71 | > EOF |
|
71 | > EOF | |
72 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
72 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
73 | remote changed e which local deleted |
|
|||
74 | use (c)hanged version or leave (d)eleted? c |
|
|||
75 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
73 | 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
76 | merging e |
|
74 | merging e | |
77 | warning: conflicts during merge. |
|
75 | warning: conflicts during merge. |
General Comments 0
You need to be logged in to leave comments.
Login now