[PATCH 6 of 6] patch: use scmutil.touch instead of scmutil.addremove

Siddharth Agarwal sid0 at fb.com
Mon May 6 19:12:32 CDT 2013


# HG changeset patch
# User Siddharth Agarwal <sid0 at fb.com>
# Date 1365108321 25200
#      Thu Apr 04 13:45:21 2013 -0700
# Node ID 7db039e4516ec4bcdb6fabb7f3fd48191249949b
# Parent  486f0b01206477869f6a6946961fea0b2e776b12
patch: use scmutil.touch instead of scmutil.addremove

addremove required paths relative to the cwd, which meant a lot of extra code
that transformed paths into relative ones. That code is now gone as well.

diff -r 486f0b012064 -r 7db039e4516e mercurial/patch.py
--- a/mercurial/patch.py	Thu Apr 04 13:38:28 2013 -0700
+++ b/mercurial/patch.py	Thu Apr 04 13:45:21 2013 -0700
@@ -481,7 +481,7 @@ class workingbackend(fsbackend):
 
     def close(self):
         wctx = self.repo[None]
-        addremoved = set(self.changed)
+        changed = set(self.changed)
         for src, dst in self.copied:
             scmutil.dirstatecopy(self.ui, self.repo, wctx, src, dst)
         if self.removed:
@@ -491,14 +491,10 @@ class workingbackend(fsbackend):
                     # File was deleted and no longer belongs to the
                     # dirstate, it was probably marked added then
                     # deleted, and should not be considered by
-                    # addremove().
-                    addremoved.discard(f)
-        if addremoved:
-            cwd = self.repo.getcwd()
-            if cwd:
-                addremoved = [util.pathto(self.repo.root, cwd, f)
-                              for f in addremoved]
-            scmutil.addremove(self.repo, addremoved, similarity=self.similarity)
+                    # touch().
+                    changed.discard(f)
+        if changed:
+            scmutil.touch(self.repo, changed, self.similarity)
         return sorted(self.changed)
 
 class filestore(object):
@@ -1397,12 +1393,7 @@ def _externalpatch(ui, repo, patcher, pa
                 ui.warn(line + '\n')
     finally:
         if files:
-            cfiles = list(files)
-            cwd = repo.getcwd()
-            if cwd:
-                cfiles = [util.pathto(repo.root, cwd, f)
-                          for f in cfiles]
-            scmutil.addremove(repo, cfiles, similarity=similarity)
+            scmutil.touch(repo, files, similarity)
     code = fp.close()
     if code:
         raise PatchError(_("patch command failed: %s") %


More information about the Mercurial-devel mailing list