[PATCH 1 of 3] patch: extend filtestore to store an optional copy source

Patrick Mezard pmezard at gmail.com
Sat Jun 11 08:20:03 CDT 2011


# HG changeset patch
# User Patrick Mezard <pmezard at gmail.com>
# Date 1307796659 -7200
# Node ID 1fe290d68004ebb01730cbf2fb1d799258e2c9a8
# Parent  b72cef1b8b26262f627423c16b5c09396721b220
patch: extend filtestore to store an optional copy source

This will help wrapping filestores in memctx.

diff --git a/mercurial/patch.py b/mercurial/patch.py
--- a/mercurial/patch.py
+++ b/mercurial/patch.py
@@ -491,7 +491,7 @@
         self.files = {}
         self.created = 0
 
-    def setfile(self, fname, data, mode):
+    def setfile(self, fname, data, mode, copied=None):
         if self.opener is None:
             root = tempfile.mkdtemp(prefix='hg-patch-')
             self.opener = scmutil.opener(root)
@@ -499,13 +499,13 @@
         fn = str(self.created)
         self.opener.write(fn, data)
         self.created += 1
-        self.files[fname] = (fn, mode)
+        self.files[fname] = (fn, mode, copied)
 
     def getfile(self, fname):
         if fname not in self.files:
             raise IOError()
-        fn, mode = self.files[fname]
-        return self.opener.read(fn), mode
+        fn, mode, copied = self.files[fname]
+        return self.opener.read(fn), mode, copied
 
     def close(self):
         if self.opener:
@@ -535,7 +535,7 @@
                 data, mode = backend.getfile(self.fname)
                 self.exists = True
             else:
-                data, mode = store.getfile(self.copysource)
+                data, mode = store.getfile(self.copysource)[:2]
                 self.exists = backend.exists(self.fname)
             self.missing = False
             if data:
@@ -1248,7 +1248,7 @@
                     continue
                 data, mode = None, None
                 if gp.op in ('RENAME', 'COPY'):
-                    data, mode = store.getfile(gp.oldpath)
+                    data, mode = store.getfile(gp.oldpath)[:2]
                 if gp.mode:
                     mode = gp.mode
                     if gp.op == 'ADD':


More information about the Mercurial-devel mailing list