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.
--- 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.