Show More
@@ -1489,18 +1489,19 b' def update(repo, node, branchmerge, forc' | |||
|
1489 | 1489 | repo.hook('update', parent1=xp1, parent2=xp2, error=stats[3]) |
|
1490 | 1490 | return stats |
|
1491 | 1491 | |
|
1492 | def graft(repo, ctx, pctx, labels): | |
|
1492 | def graft(repo, ctx, pctx, labels, keepparent=False): | |
|
1493 | 1493 | """Do a graft-like merge. |
|
1494 | 1494 | |
|
1495 | 1495 | This is a merge where the merge ancestor is chosen such that one |
|
1496 | 1496 | or more changesets are grafted onto the current changeset. In |
|
1497 | 1497 | addition to the merge, this fixes up the dirstate to include only |
|
1498 |
a single parent and tries to duplicate any |
|
|
1499 | appropriately. | |
|
1498 | a single parent (if keepparent is False) and tries to duplicate any | |
|
1499 | renames/copies appropriately. | |
|
1500 | 1500 | |
|
1501 | 1501 | ctx - changeset to rebase |
|
1502 | 1502 | pctx - merge base, usually ctx.p1() |
|
1503 | 1503 | labels - merge labels eg ['local', 'graft'] |
|
1504 | keepparent - keep second parent if any | |
|
1504 | 1505 | |
|
1505 | 1506 | """ |
|
1506 | 1507 | # If we're grafting a descendant onto an ancestor, be sure to pass |
@@ -1514,9 +1515,14 b' def graft(repo, ctx, pctx, labels):' | |||
|
1514 | 1515 | stats = update(repo, ctx.node(), True, True, False, pctx.node(), |
|
1515 | 1516 | mergeancestor=mergeancestor, labels=labels) |
|
1516 | 1517 | |
|
1517 | # drop the second merge parent | |
|
1518 | pother = nullid | |
|
1519 | parents = ctx.parents() | |
|
1520 | if keepparent and len(parents) == 2 and pctx in parents: | |
|
1521 | parents.remove(pctx) | |
|
1522 | pother = parents[0].node() | |
|
1523 | ||
|
1518 | 1524 | repo.dirstate.beginparentchange() |
|
1519 |
repo.setparents(repo['.'].node(), |
|
|
1525 | repo.setparents(repo['.'].node(), pother) | |
|
1520 | 1526 | repo.dirstate.write(repo.currenttransaction()) |
|
1521 | 1527 | # fix up dirstate for copies and renames |
|
1522 | 1528 | copies.duplicatecopies(repo, ctx.rev(), pctx.rev()) |
General Comments 0
You need to be logged in to leave comments.
Login now