mercurial/patch.py
changeset 19155 0b3689a08df5
parent 18830 6b827d84d286
child 19513 9e8298a324ac
equal deleted inserted replaced
19154:0c7cf411b390 19155:0b3689a08df5
   479         self.removed.add(fname)
   479         self.removed.add(fname)
   480         self.changed.add(fname)
   480         self.changed.add(fname)
   481 
   481 
   482     def close(self):
   482     def close(self):
   483         wctx = self.repo[None]
   483         wctx = self.repo[None]
   484         addremoved = set(self.changed)
   484         changed = set(self.changed)
   485         for src, dst in self.copied:
   485         for src, dst in self.copied:
   486             scmutil.dirstatecopy(self.ui, self.repo, wctx, src, dst)
   486             scmutil.dirstatecopy(self.ui, self.repo, wctx, src, dst)
   487         if self.removed:
   487         if self.removed:
   488             wctx.forget(sorted(self.removed))
   488             wctx.forget(sorted(self.removed))
   489             for f in self.removed:
   489             for f in self.removed:
   490                 if f not in self.repo.dirstate:
   490                 if f not in self.repo.dirstate:
   491                     # File was deleted and no longer belongs to the
   491                     # File was deleted and no longer belongs to the
   492                     # dirstate, it was probably marked added then
   492                     # dirstate, it was probably marked added then
   493                     # deleted, and should not be considered by
   493                     # deleted, and should not be considered by
   494                     # addremove().
   494                     # marktouched().
   495                     addremoved.discard(f)
   495                     changed.discard(f)
   496         if addremoved:
   496         if changed:
   497             cwd = self.repo.getcwd()
   497             scmutil.marktouched(self.repo, changed, self.similarity)
   498             if cwd:
       
   499                 addremoved = [util.pathto(self.repo.root, cwd, f)
       
   500                               for f in addremoved]
       
   501             scmutil.addremove(self.repo, addremoved, similarity=self.similarity)
       
   502         return sorted(self.changed)
   498         return sorted(self.changed)
   503 
   499 
   504 class filestore(object):
   500 class filestore(object):
   505     def __init__(self, maxsize=None):
   501     def __init__(self, maxsize=None):
   506         self.opener = None
   502         self.opener = None
  1395                     ui.warn(pf + '\n')
  1391                     ui.warn(pf + '\n')
  1396                     printed_file = True
  1392                     printed_file = True
  1397                 ui.warn(line + '\n')
  1393                 ui.warn(line + '\n')
  1398     finally:
  1394     finally:
  1399         if files:
  1395         if files:
  1400             cfiles = list(files)
  1396             scmutil.marktouched(repo, files, similarity)
  1401             cwd = repo.getcwd()
       
  1402             if cwd:
       
  1403                 cfiles = [util.pathto(repo.root, cwd, f)
       
  1404                           for f in cfiles]
       
  1405             scmutil.addremove(repo, cfiles, similarity=similarity)
       
  1406     code = fp.close()
  1397     code = fp.close()
  1407     if code:
  1398     if code:
  1408         raise PatchError(_("patch command failed: %s") %
  1399         raise PatchError(_("patch command failed: %s") %
  1409                          util.explainexit(code)[0])
  1400                          util.explainexit(code)[0])
  1410     return fuzz
  1401     return fuzz