mercurial/patch.py
branchstable
changeset 16112 d7829b2ecf32
parent 15971 089ee59a8658
child 16121 ccba74472af2
equal deleted inserted replaced
16111:131d1a09108a 16112:d7829b2ecf32
   473     def close(self):
   473     def close(self):
   474         wctx = self.repo[None]
   474         wctx = self.repo[None]
   475         addremoved = set(self.changed)
   475         addremoved = set(self.changed)
   476         for src, dst in self.copied:
   476         for src, dst in self.copied:
   477             scmutil.dirstatecopy(self.ui, self.repo, wctx, src, dst)
   477             scmutil.dirstatecopy(self.ui, self.repo, wctx, src, dst)
   478             addremoved.discard(src)
   478         if self.removed:
   479         if (not self.similarity) and self.removed:
       
   480             wctx.forget(sorted(self.removed))
   479             wctx.forget(sorted(self.removed))
       
   480             for f in self.removed:
       
   481                 if f not in self.repo.dirstate:
       
   482                     # File was deleted and no longer belongs to the
       
   483                     # dirstate, it was probably marked added then
       
   484                     # deleted, and should not be considered by
       
   485                     # addremove().
       
   486                     addremoved.discard(f)
   481         if addremoved:
   487         if addremoved:
   482             cwd = self.repo.getcwd()
   488             cwd = self.repo.getcwd()
   483             if cwd:
   489             if cwd:
   484                 addremoved = [util.pathto(self.repo.root, cwd, f)
   490                 addremoved = [util.pathto(self.repo.root, cwd, f)
   485                               for f in addremoved]
   491                               for f in addremoved]