largefiles: overridematch() should replace the file path instead of extending (issue3934) stable
authorWei, Elson <elson.wei@gmail.com>
Wed, 24 Jul 2013 13:20:44 +0800
branchstable
changeset 19472 32e502b26983
parent 19471 fd1bb7c1be78
child 19473 10a0ae668fe6
largefiles: overridematch() should replace the file path instead of extending (issue3934)
hgext/largefiles/overrides.py
tests/test-largefiles.t
--- a/hgext/largefiles/overrides.py	Tue Jul 23 17:28:12 2013 -0500
+++ b/hgext/largefiles/overrides.py	Wed Jul 24 13:20:44 2013 +0800
@@ -250,8 +250,10 @@
         """
         match = oldmatch(ctx, pats, opts, globbed, default)
         m = copy.copy(match)
-        standins = [lfutil.standin(f) for f in m._files]
-        m._files.extend(standins)
+        for i in range(0, len(m._files)):
+            standin = lfutil.standin(m._files[i])
+            if standin in repo[ctx.node()]:
+                m._files[i] = standin
         m._fmap = set(m._files)
         m._always = False
         origmatchfn = m.matchfn
--- a/tests/test-largefiles.t	Tue Jul 23 17:28:12 2013 -0500
+++ b/tests/test-largefiles.t	Wed Jul 24 13:20:44 2013 +0800
@@ -738,6 +738,8 @@
   large6
   $ cat sub2/large7
   large7
+  $ hg log -qf sub2/large7
+  7:daea875e9014
   $ cd ..
   $ hg clone a -r 3 c
   adding changesets