# HG changeset patch # User Mads Kiilerich # Date 1362055464 -3600 # 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 -r 2dc7f63181b9 -r f0aa8bbffe60 hgext/largefiles/lfcommands.py --- 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) diff -r 2dc7f63181b9 -r f0aa8bbffe60 tests/test-largefiles.t --- 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.