mercurial/merge.py
changeset 45467 bb9888d32601
parent 45466 14b3dbfa4eeb
child 45468 09edbff6ae8d
equal deleted inserted replaced
45466:14b3dbfa4eeb 45467:bb9888d32601
   561     ''''An object representing result of merging manifests.
   561     ''''An object representing result of merging manifests.
   562 
   562 
   563     It has information about what actions need to be performed on dirstate
   563     It has information about what actions need to be performed on dirstate
   564     mapping of divergent renames and other such cases. '''
   564     mapping of divergent renames and other such cases. '''
   565 
   565 
   566     NO_OP_ACTIONS = (mergestatemod.ACTION_KEEP,)
   566     NO_OP_ACTIONS = (
       
   567         mergestatemod.ACTION_KEEP,
       
   568         mergestatemod.ACTION_KEEP_ABSENT,
       
   569     )
   567 
   570 
   568     def __init__(self):
   571     def __init__(self):
   569         """
   572         """
   570         filemapping: dict of filename as keys and action related info as values
   573         filemapping: dict of filename as keys and action related info as values
   571         diverge: mapping of source name -> list of dest name for
   574         diverge: mapping of source name -> list of dest name for
  1173                     continue
  1176                     continue
  1174             # If keep is an option, just do it.
  1177             # If keep is an option, just do it.
  1175             if mergestatemod.ACTION_KEEP in bids:
  1178             if mergestatemod.ACTION_KEEP in bids:
  1176                 repo.ui.note(_(b" %s: picking 'keep' action\n") % f)
  1179                 repo.ui.note(_(b" %s: picking 'keep' action\n") % f)
  1177                 mresult.addfile(f, *bids[mergestatemod.ACTION_KEEP][0])
  1180                 mresult.addfile(f, *bids[mergestatemod.ACTION_KEEP][0])
       
  1181                 continue
       
  1182             # If keep absent is an option, just do that
       
  1183             if mergestatemod.ACTION_KEEP_ABSENT in bids:
       
  1184                 repo.ui.note(_(b" %s: picking 'keep absent' action\n") % f)
       
  1185                 mresult.addfile(f, *bids[mergestatemod.ACTION_KEEP_ABSENT][0])
  1178                 continue
  1186                 continue
  1179             # If there are gets and they all agree [how could they not?], do it.
  1187             # If there are gets and they all agree [how could they not?], do it.
  1180             if mergestatemod.ACTION_GET in bids:
  1188             if mergestatemod.ACTION_GET in bids:
  1181                 ga0 = bids[mergestatemod.ACTION_GET][0]
  1189                 ga0 = bids[mergestatemod.ACTION_GET][0]
  1182                 if all(a == ga0 for a in bids[mergestatemod.ACTION_GET][1:]):
  1190                 if all(a == ga0 for a in bids[mergestatemod.ACTION_GET][1:]):
  1527     # keep (noop, just log it)
  1535     # keep (noop, just log it)
  1528     for f, args, msg in mresult.getactions(
  1536     for f, args, msg in mresult.getactions(
  1529         (mergestatemod.ACTION_KEEP,), sort=True
  1537         (mergestatemod.ACTION_KEEP,), sort=True
  1530     ):
  1538     ):
  1531         repo.ui.debug(b" %s: %s -> k\n" % (f, msg))
  1539         repo.ui.debug(b" %s: %s -> k\n" % (f, msg))
       
  1540         # no progress
       
  1541     for f, args, msg in mresult.getactions(
       
  1542         (mergestatemod.ACTION_KEEP_ABSENT,), sort=True
       
  1543     ):
       
  1544         repo.ui.debug(b" %s: %s -> ka\n" % (f, msg))
  1532         # no progress
  1545         # no progress
  1533 
  1546 
  1534     # directory rename, move local
  1547     # directory rename, move local
  1535     for f, args, msg in mresult.getactions(
  1548     for f, args, msg in mresult.getactions(
  1536         (mergestatemod.ACTION_DIR_RENAME_MOVE_LOCAL,), sort=True
  1549         (mergestatemod.ACTION_DIR_RENAME_MOVE_LOCAL,), sort=True