mercurial/merge.py
changeset 44212 cb8b67016110
parent 44211 fc7175df6359
child 44215 b1069b369d6e
equal deleted inserted replaced
44211:fc7175df6359 44212:cb8b67016110
  2590 
  2590 
  2591 
  2591 
  2592 def graft(
  2592 def graft(
  2593     repo,
  2593     repo,
  2594     ctx,
  2594     ctx,
  2595     base,
  2595     base=None,
  2596     labels=None,
  2596     labels=None,
  2597     keepparent=False,
  2597     keepparent=False,
  2598     keepconflictparent=False,
  2598     keepconflictparent=False,
  2599     wctx=None,
  2599     wctx=None,
  2600 ):
  2600 ):
  2605     addition to the merge, this fixes up the dirstate to include only
  2605     addition to the merge, this fixes up the dirstate to include only
  2606     a single parent (if keepparent is False) and tries to duplicate any
  2606     a single parent (if keepparent is False) and tries to duplicate any
  2607     renames/copies appropriately.
  2607     renames/copies appropriately.
  2608 
  2608 
  2609     ctx - changeset to rebase
  2609     ctx - changeset to rebase
  2610     base - merge base, usually ctx.p1()
  2610     base - merge base, or ctx.p1() if not specified
  2611     labels - merge labels eg ['local', 'graft']
  2611     labels - merge labels eg ['local', 'graft']
  2612     keepparent - keep second parent if any
  2612     keepparent - keep second parent if any
  2613     keepconflictparent - if unresolved, keep parent used for the merge
  2613     keepconflictparent - if unresolved, keep parent used for the merge
  2614 
  2614 
  2615     """
  2615     """
  2619     # to copy commits), and 2) informs update that the incoming changes are
  2619     # to copy commits), and 2) informs update that the incoming changes are
  2620     # newer than the destination so it doesn't prompt about "remote changed foo
  2620     # newer than the destination so it doesn't prompt about "remote changed foo
  2621     # which local deleted".
  2621     # which local deleted".
  2622     wctx = wctx or repo[None]
  2622     wctx = wctx or repo[None]
  2623     pctx = wctx.p1()
  2623     pctx = wctx.p1()
       
  2624     base = base or ctx.p1()
  2624     mergeancestor = repo.changelog.isancestor(pctx.node(), ctx.node())
  2625     mergeancestor = repo.changelog.isancestor(pctx.node(), ctx.node())
  2625 
  2626 
  2626     stats = update(
  2627     stats = update(
  2627         repo,
  2628         repo,
  2628         ctx.node(),
  2629         ctx.node(),