mercurial/merge.py
branchstable
changeset 15538 b0a88bda3381
parent 15041 3afe5edda4e3
child 15619 6c8573dd1b6b
child 15637 7f01ad702405
equal deleted inserted replaced
15536:415d69df8a02 15538:b0a88bda3381
    79             del self._state[dfile]
    79             del self._state[dfile]
    80         elif not r:
    80         elif not r:
    81             self.mark(dfile, 'r')
    81             self.mark(dfile, 'r')
    82         return r
    82         return r
    83 
    83 
    84 def _checkunknown(wctx, mctx):
    84 def _checkunknown(wctx, mctx, folding):
    85     "check for collisions between unknown files and files in mctx"
    85     "check for collisions between unknown files and files in mctx"
    86     for f in wctx.unknown():
    86     if folding:
    87         if f in mctx and mctx[f].cmp(wctx[f]):
    87         foldf = util.normcase
       
    88     else:
       
    89         foldf = lambda fn: fn
       
    90     folded = {}
       
    91     for fn in mctx:
       
    92         folded[foldf(fn)] = fn
       
    93     for fn in wctx.unknown():
       
    94         f = foldf(fn)
       
    95         if f in folded and mctx[folded[f]].cmp(wctx[f]):
    88             raise util.Abort(_("untracked file in working directory differs"
    96             raise util.Abort(_("untracked file in working directory differs"
    89                                " from file in requested revision: '%s'") % f)
    97                                " from file in requested revision: '%s'") % fn)
    90 
    98 
    91 def _checkcollision(mctx):
    99 def _checkcollision(mctx):
    92     "check for case folding collisions in the destination context"
   100     "check for case folding collisions in the destination context"
    93     folded = {}
   101     folded = {}
    94     for fn in mctx:
   102     for fn in mctx:
   535                 overwrite = True
   543                 overwrite = True
   536 
   544 
   537         ### calculate phase
   545         ### calculate phase
   538         action = []
   546         action = []
   539         wc.status(unknown=True) # prime cache
   547         wc.status(unknown=True) # prime cache
       
   548         folding = not util.checkcase(repo.path)
   540         if not force:
   549         if not force:
   541             _checkunknown(wc, p2)
   550             _checkunknown(wc, p2, folding)
   542         if not util.checkcase(repo.path):
   551         if folding:
   543             _checkcollision(p2)
   552             _checkcollision(p2)
   544         action += _forgetremoved(wc, p2, branchmerge)
   553         action += _forgetremoved(wc, p2, branchmerge)
   545         action += manifestmerge(repo, wc, p2, pa, overwrite, partial)
   554         action += manifestmerge(repo, wc, p2, pa, overwrite, partial)
   546 
   555 
   547         ### apply phase
   556         ### apply phase