largefiles: ensure addlargefiles() doesn't add a standin as a largefile stable
authorMatt Harbison <matt_harbison@yahoo.com>
Thu, 19 Jul 2012 23:35:13 -0400
branchstable
changeset 17232 25248e2ebaee
parent 17231 2446b63c89ec
child 17233 acea82757d8a
largefiles: ensure addlargefiles() doesn't add a standin as a largefile An easy way to force this (and cause a traceback) prior to the fix for 3507 was $ touch large $ hg add --large large $ hg ci -m "add" $ hg remove large $ touch large $ hg addremove --config largefiles.patterns=**large This patch also detected (and corrected) a previous test where a standin got added as a largefile (without a traceback).
hgext/largefiles/overrides.py
tests/test-largefiles.t
--- a/hgext/largefiles/overrides.py	Thu Jul 19 11:12:05 2012 -0400
+++ b/hgext/largefiles/overrides.py	Thu Jul 19 23:35:13 2012 -0400
@@ -81,7 +81,7 @@
                 ui.warn(_('%s already a largefile\n') % f)
             continue
 
-        if exact or not exists:
+        if (exact or not exists) and not lfutil.isstandin(f):
             wfile = repo.wjoin(f)
 
             # In case the file was removed previously, but not committed
--- a/tests/test-largefiles.t	Thu Jul 19 11:12:05 2012 -0400
+++ b/tests/test-largefiles.t	Thu Jul 19 23:35:13 2012 -0400
@@ -383,7 +383,6 @@
   $ cd ..
   $ hg -R a addremove
   removing sub/large4
-  adding a/.hglf/testaddremove.dat as a largefile (glob)
   adding a/testaddremove.dat as a largefile (glob)
   removing normal3
   adding normaladdremove
@@ -489,6 +488,26 @@
   C sub2/large6
   C sub2/large7
 
+Test that a standin can't be added as a large file
+
+  $ touch large
+  $ hg add --large large
+  $ hg ci -m "add"
+  Invoking status precommit hook
+  A large
+  Invoking status postcommit hook
+  C large
+  C normal
+  C normal3
+  C sub/large4
+  C sub/normal4
+  C sub2/large6
+  C sub2/large7
+  $ hg remove large
+  $ touch large
+  $ hg addremove --config largefiles.patterns=**large --traceback
+  adding large as a largefile
+
   $ cd ../a
 
 Clone a largefiles repo.