mercurial/merge.py
changeset 3121 1c1e59aac82a
parent 3120 b1de36a4b4df
child 3122 2ef0b3aae186
equal deleted inserted replaced
3120:b1de36a4b4df 3121:1c1e59aac82a
   131                     action.append((f, "g", m2.execf(f), m2[f]))
   131                     action.append((f, "g", m2.execf(f), m2[f]))
   132                 # local is newer, not overwrite, check mode bits
   132                 # local is newer, not overwrite, check mode bits
   133                 elif fmerge(f) != m1.execf(f):
   133                 elif fmerge(f) != m1.execf(f):
   134                     ui.debug(_(" updating permissions for %s\n") % f)
   134                     ui.debug(_(" updating permissions for %s\n") % f)
   135                     action.append((f, "e", m2.execf(f)))
   135                     action.append((f, "e", m2.execf(f)))
   136 
       
   137             # contents same, check mode bits
   136             # contents same, check mode bits
   138             elif m1.execf(f) != m2.execf(f):
   137             elif m1.execf(f) != m2.execf(f):
   139                 if overwrite or fmerge(f) != m1.execf(f)
   138                 if overwrite or fmerge(f) != m1.execf(f):
   140                     ui.debug(_(" updating permissions for %s\n") % f)
   139                     ui.debug(_(" updating permissions for %s\n") % f)
   141                     action.append((f, "e", m2.execf(f)))
   140                     action.append((f, "e", m2.execf(f)))
   142             del m2[f]
   141             del m2[f]
   143         elif f in ma:
   142         elif f in ma:
   144             if n != ma[f] and not overwrite:
   143             if n != ma[f] and not overwrite:
   149             else:
   148             else:
   150                 ui.debug(_("other deleted %s\n") % f)
   149                 ui.debug(_("other deleted %s\n") % f)
   151                 action.append((f, "r"))
   150                 action.append((f, "r"))
   152         else:
   151         else:
   153             # file is created on branch or in working directory
   152             # file is created on branch or in working directory
   154             if overwrite and n[20:] != "u":
   153             if (overwrite and n[20:] != "u") or (backwards and not n[20:]):
   155                 ui.debug(_("remote deleted %s, clobbering\n") % f)
   154                 ui.debug(_("remote deleted %s, clobbering\n") % f)
   156                 action.append((f, "r"))
   155                 action.append((f, "r"))
   157             elif not n[20:]: # same as parent
   156             else:
   158                 if backwards:
   157                 ui.debug(_("local created %s, keeping\n") % f)
   159                     ui.debug(_("remote deleted %s\n") % f)
       
   160                     action.append((f, "r"))
       
   161                 else:
       
   162                     ui.debug(_("local modified %s, keeping\n") % f)
       
   163             else:
       
   164                 ui.debug(_("working dir created %s, keeping\n") % f)
       
   165 
   158 
   166     for f, n in m2.iteritems():
   159     for f, n in m2.iteritems():
   167         if f in ma:
   160         if f in ma:
   168             if overwrite or backwards:
   161             if overwrite or backwards:
   169                 ui.debug(_("local deleted %s, recreating\n") % f)
   162                 ui.debug(_("local deleted %s, recreating\n") % f)