Mercurial > public > mercurial-scm > hg
comparison mercurial/merge.py @ 43796:ebfd349eac46
graft: rename `pctx` argument to `base` since that's what it is
The new name better matches the docstring. It also frees up `pctx` to
be used for something else (next patch).
Differential Revision: https://phab.mercurial-scm.org/D7547
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 05 Dec 2019 09:32:47 -0800 |
parents | be8552f25cab |
children | fb07126dadbe |
comparison
equal
deleted
inserted
replaced
43795:0f6782df1100 | 43796:ebfd349eac46 |
---|---|
2580 ) | 2580 ) |
2581 return stats | 2581 return stats |
2582 | 2582 |
2583 | 2583 |
2584 def graft( | 2584 def graft( |
2585 repo, ctx, pctx, labels=None, keepparent=False, keepconflictparent=False | 2585 repo, ctx, base, labels=None, keepparent=False, keepconflictparent=False |
2586 ): | 2586 ): |
2587 """Do a graft-like merge. | 2587 """Do a graft-like merge. |
2588 | 2588 |
2589 This is a merge where the merge ancestor is chosen such that one | 2589 This is a merge where the merge ancestor is chosen such that one |
2590 or more changesets are grafted onto the current changeset. In | 2590 or more changesets are grafted onto the current changeset. In |
2591 addition to the merge, this fixes up the dirstate to include only | 2591 addition to the merge, this fixes up the dirstate to include only |
2592 a single parent (if keepparent is False) and tries to duplicate any | 2592 a single parent (if keepparent is False) and tries to duplicate any |
2593 renames/copies appropriately. | 2593 renames/copies appropriately. |
2594 | 2594 |
2595 ctx - changeset to rebase | 2595 ctx - changeset to rebase |
2596 pctx - merge base, usually ctx.p1() | 2596 base - merge base, usually ctx.p1() |
2597 labels - merge labels eg ['local', 'graft'] | 2597 labels - merge labels eg ['local', 'graft'] |
2598 keepparent - keep second parent if any | 2598 keepparent - keep second parent if any |
2599 keepconflictparent - if unresolved, keep parent used for the merge | 2599 keepconflictparent - if unresolved, keep parent used for the merge |
2600 | 2600 |
2601 """ | 2601 """ |
2610 stats = update( | 2610 stats = update( |
2611 repo, | 2611 repo, |
2612 ctx.node(), | 2612 ctx.node(), |
2613 True, | 2613 True, |
2614 True, | 2614 True, |
2615 pctx.node(), | 2615 base.node(), |
2616 mergeancestor=mergeancestor, | 2616 mergeancestor=mergeancestor, |
2617 labels=labels, | 2617 labels=labels, |
2618 ) | 2618 ) |
2619 | 2619 |
2620 if keepconflictparent and stats.unresolvedcount: | 2620 if keepconflictparent and stats.unresolvedcount: |
2621 pother = ctx.node() | 2621 pother = ctx.node() |
2622 else: | 2622 else: |
2623 pother = nullid | 2623 pother = nullid |
2624 parents = ctx.parents() | 2624 parents = ctx.parents() |
2625 if keepparent and len(parents) == 2 and pctx in parents: | 2625 if keepparent and len(parents) == 2 and base in parents: |
2626 parents.remove(pctx) | 2626 parents.remove(base) |
2627 pother = parents[0].node() | 2627 pother = parents[0].node() |
2628 | 2628 |
2629 with repo.dirstate.parentchange(): | 2629 with repo.dirstate.parentchange(): |
2630 repo.setparents(repo[b'.'].node(), pother) | 2630 repo.setparents(repo[b'.'].node(), pother) |
2631 repo.dirstate.write(repo.currenttransaction()) | 2631 repo.dirstate.write(repo.currenttransaction()) |
2632 # fix up dirstate for copies and renames | 2632 # fix up dirstate for copies and renames |
2633 copies.duplicatecopies(repo, repo[None], ctx.rev(), pctx.rev()) | 2633 copies.duplicatecopies(repo, repo[None], ctx.rev(), base.rev()) |
2634 return stats | 2634 return stats |
2635 | 2635 |
2636 | 2636 |
2637 def purge( | 2637 def purge( |
2638 repo, | 2638 repo, |