mercurial/merge.py
changeset 49911 c7a04bfabd4d
parent 49910 7b474609f199
child 49959 c166b212bdee
equal deleted inserted replaced
49910:7b474609f199 49911:c7a04bfabd4d
   244         if repo.wvfs.isfileorlink(f):
   244         if repo.wvfs.isfileorlink(f):
   245             repo.ui.warn(_(b"%s: replacing untracked file\n") % f)
   245             repo.ui.warn(_(b"%s: replacing untracked file\n") % f)
   246         else:
   246         else:
   247             repo.ui.warn(_(b"%s: replacing untracked files in directory\n") % f)
   247             repo.ui.warn(_(b"%s: replacing untracked files in directory\n") % f)
   248 
   248 
   249     for f, args, msg in list(
   249     def transformargs(f, args):
   250         mresult.getactions([mergestatemod.ACTION_CREATED])
       
   251     ):
       
   252         backup = (
   250         backup = (
   253             f in fileconflicts
   251             f in fileconflicts
   254             or pathconflicts
   252             or pathconflicts
   255             and (
   253             and (
   256                 f in pathconflicts
   254                 f in pathconflicts
   257                 or any(p in pathconflicts for p in pathutil.finddirs(f))
   255                 or any(p in pathconflicts for p in pathutil.finddirs(f))
   258             )
   256             )
   259         )
   257         )
   260         (flags,) = args
   258         (flags,) = args
   261         mresult.addfile(f, mergestatemod.ACTION_GET, (flags, backup), msg)
   259         return (flags, backup)
       
   260 
       
   261     mresult.mapaction(
       
   262         mergestatemod.ACTION_CREATED, mergestatemod.ACTION_GET, transformargs
       
   263     )
   262 
   264 
   263 
   265 
   264 def _forgetremoved(wctx, mctx, branchmerge, mresult):
   266 def _forgetremoved(wctx, mctx, branchmerge, mresult):
   265     """
   267     """
   266     Forget removed files
   268     Forget removed files
   587             a, d, m = self._filemapping[filename]
   589             a, d, m = self._filemapping[filename]
   588             del self._actionmapping[a][filename]
   590             del self._actionmapping[a][filename]
   589 
   591 
   590         self._filemapping[filename] = (action, data, message)
   592         self._filemapping[filename] = (action, data, message)
   591         self._actionmapping[action][filename] = (data, message)
   593         self._actionmapping[action][filename] = (data, message)
       
   594 
       
   595     def mapaction(self, actionfrom, actionto, transform):
       
   596         """changes all occurrences of action `actionfrom` into `actionto`,
       
   597         transforming its args with the function `transform`.
       
   598         """
       
   599         orig = self._actionmapping[actionfrom]
       
   600         del self._actionmapping[actionfrom]
       
   601         dest = self._actionmapping[actionto]
       
   602         for f, (data, msg) in orig.items():
       
   603             data = transform(f, data)
       
   604             self._filemapping[f] = (actionto, data, msg)
       
   605             dest[f] = (data, msg)
   592 
   606 
   593     def getfile(self, filename, default_return=None):
   607     def getfile(self, filename, default_return=None):
   594         """returns (action, args, msg) about this file
   608         """returns (action, args, msg) about this file
   595 
   609 
   596         returns default_return if the file is not present"""
   610         returns default_return if the file is not present"""