mercurial/filemerge.py
changeset 46140 3ca5ca380a34
parent 46109 bdc2bf68f19e
child 46430 0c95b59a89f1
equal deleted inserted replaced
46139:34f2c634c8f6 46140:3ca5ca380a34
   406         return 1
   406         return 1
   407     unused, unused, unused, back = files
   407     unused, unused, unused, back = files
   408 
   408 
   409     ui = repo.ui
   409     ui = repo.ui
   410 
   410 
   411     validkeep = [b'keep', b'keep-merge3']
   411     validkeep = [b'keep', b'keep-merge3', b'keep-mergediff']
   412 
   412 
   413     # do we attempt to simplemerge first?
   413     # do we attempt to simplemerge first?
   414     try:
   414     try:
   415         premerge = _toolbool(ui, tool, b"premerge", not binary)
   415         premerge = _toolbool(ui, tool, b"premerge", not binary)
   416     except error.ConfigError:
   416     except error.ConfigError:
   421                 _(b"%s.premerge not valid ('%s' is neither boolean nor %s)")
   421                 _(b"%s.premerge not valid ('%s' is neither boolean nor %s)")
   422                 % (tool, premerge, _valid)
   422                 % (tool, premerge, _valid)
   423             )
   423             )
   424 
   424 
   425     if premerge:
   425     if premerge:
   426         if premerge == b'keep-merge3':
   426         mode = b'merge'
       
   427         if premerge in {b'keep-merge3', b'keep-mergediff'}:
   427             if not labels:
   428             if not labels:
   428                 labels = _defaultconflictlabels
   429                 labels = _defaultconflictlabels
   429             if len(labels) < 3:
   430             if len(labels) < 3:
   430                 labels.append(b'base')
   431                 labels.append(b'base')
   431         r = simplemerge.simplemerge(ui, fcd, fca, fco, quiet=True, label=labels)
   432             if premerge == b'keep-mergediff':
       
   433                 mode = b'mergediff'
       
   434         r = simplemerge.simplemerge(
       
   435             ui, fcd, fca, fco, quiet=True, label=labels, mode=mode
       
   436         )
   432         if not r:
   437         if not r:
   433             ui.debug(b" premerge successful\n")
   438             ui.debug(b" premerge successful\n")
   434             return 0
   439             return 0
   435         if premerge not in validkeep:
   440         if premerge not in validkeep:
   436             # restore from backup and try again
   441             # restore from backup and try again