# HG changeset patch # User Mads Kiilerich # Date 2013-02-28 12:44:24 # Node ID f0aa8bbffe60498349841f4f4aff20471989d77e # Parent 2dc7f63181b98da62d213f4df354aa67bd393f68 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. diff --git a/hgext/largefiles/lfcommands.py b/hgext/largefiles/lfcommands.py --- a/hgext/largefiles/lfcommands.py +++ b/hgext/largefiles/lfcommands.py @@ -435,11 +435,12 @@ def downloadlfiles(ui, repo, rev=None): 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) diff --git a/tests/test-largefiles.t b/tests/test-largefiles.t --- a/tests/test-largefiles.t +++ b/tests/test-largefiles.t @@ -1262,6 +1262,16 @@ revert some files to an older revision - 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.