mercurial/merge.py
changeset 6272 dd9bd227ae9a
parent 6271 01aed23355e9
child 6273 20aa460a52b6
equal deleted inserted replaced
6271:01aed23355e9 6272:dd9bd227ae9a
     9 from i18n import _
     9 from i18n import _
    10 import errno, util, os, heapq, filemerge
    10 import errno, util, os, heapq, filemerge
    11 
    11 
    12 def _checkunknown(wctx, mctx):
    12 def _checkunknown(wctx, mctx):
    13     "check for collisions between unknown files and files in mctx"
    13     "check for collisions between unknown files and files in mctx"
    14     man = mctx.manifest()
       
    15     for f in wctx.unknown():
    14     for f in wctx.unknown():
    16         if f in man:
    15         if f in mctx and mctx[f].cmp(wctx[f].data()):
    17             if mctx.filectx(f).cmp(wctx.filectx(f).data()):
    16             raise util.Abort(_("untracked file in working directory differs"
    18                 raise util.Abort(_("untracked file in working directory differs"
    17                                " from file in requested revision: '%s'") % f)
    19                                    " from file in requested revision: '%s'")
       
    20                                  % f)
       
    21 
    18 
    22 def _checkcollision(mctx):
    19 def _checkcollision(mctx):
    23     "check for case folding collisions in the destination context"
    20     "check for case folding collisions in the destination context"
    24     folded = {}
    21     folded = {}
    25     for fn in mctx.manifest():
    22     for fn in mctx:
    26         fold = fn.lower()
    23         fold = fn.lower()
    27         if fold in folded:
    24         if fold in folded:
    28             raise util.Abort(_("case-folding collision between %s and %s")
    25             raise util.Abort(_("case-folding collision between %s and %s")
    29                              % (fn, folded[fold]))
    26                              % (fn, folded[fold]))
    30         folded[fold] = fn
    27         folded[fold] = fn
    43     that is not present in the working directory, we need to mark it
    40     that is not present in the working directory, we need to mark it
    44     as removed.
    41     as removed.
    45     """
    42     """
    46 
    43 
    47     action = []
    44     action = []
    48     man = mctx.manifest()
       
    49     state = branchmerge and 'r' or 'f'
    45     state = branchmerge and 'r' or 'f'
    50     for f in wctx.deleted():
    46     for f in wctx.deleted():
    51         if f not in man:
    47         if f not in mctx:
    52             action.append((f, state))
    48             action.append((f, state))
    53 
    49 
    54     if not branchmerge:
    50     if not branchmerge:
    55         for f in wctx.removed():
    51         for f in wctx.removed():
    56             if f not in man:
    52             if f not in mctx:
    57                 action.append((f, "f"))
    53                 action.append((f, "f"))
    58 
    54 
    59     return action
    55     return action
    60 
    56 
    61 def _nonoverlap(d1, d2, d3):
    57 def _nonoverlap(d1, d2, d3):