largefiles: fix download of largefiles from an empty list of changesets stable
authorMads Kiilerich <madski@unity3d.com>
Thu, 28 Feb 2013 13:44:24 +0100
branchstable
changeset 18722 f0aa8bbffe60
parent 18721 2dc7f63181b9
child 18723 e56f7cd8c67b
largefiles: fix download of largefiles from an empty list of changesets The empty list was interpreted as all revisions - just like None is. The empty list is now handled explicitly.
hgext/largefiles/lfcommands.py
tests/test-largefiles.t
--- a/hgext/largefiles/lfcommands.py	Thu Feb 28 13:44:22 2013 +0100
+++ b/hgext/largefiles/lfcommands.py	Thu Feb 28 13:44:24 2013 +0100
@@ -435,11 +435,12 @@
         pass
     totalsuccess = 0
     totalmissing = 0
-    for ctx in cmdutil.walkchangerevs(repo, matchfn, {'rev' : rev},
-                                      prepare):
-        success, missing = cachelfiles(ui, repo, ctx.node())
-        totalsuccess += len(success)
-        totalmissing += len(missing)
+    if rev != []: # walkchangerevs on empty list would return all revs
+        for ctx in cmdutil.walkchangerevs(repo, matchfn, {'rev' : rev},
+                                          prepare):
+            success, missing = cachelfiles(ui, repo, ctx.node())
+            totalsuccess += len(success)
+            totalmissing += len(missing)
     ui.status(_("%d additional largefiles cached\n") % totalsuccess)
     if totalmissing > 0:
         ui.status(_("%d largefiles failed to download\n") % totalmissing)
--- a/tests/test-largefiles.t	Thu Feb 28 13:44:22 2013 +0100
+++ b/tests/test-largefiles.t	Thu Feb 28 13:44:24 2013 +0100
@@ -1262,6 +1262,16 @@
 - cleanup
   $ rm $TESTTMP/d/.hg/largefiles/eb7338044dc27f9bc59b8dd5a246b065ead7a9c4
 
+Pulling 0 revisions with --all-largefiles should not fetch for all revisions
+
+  $ hg pull --all-largefiles
+  pulling from $TESTTMP/d (glob)
+  searching for changes
+  no changes found
+  caching new largefiles
+  0 largefiles cached
+  0 additional largefiles cached
+
 Merging does not revert to old versions of largefiles and also check
 that merging after having pulled from a non-default remote works
 correctly.