# HG changeset patch # User Na'Tosha Bard # Date 2012-05-12 07:59:01 # Node ID 7d6a660ca151f4edf8636021af1be10b42912fdd # Parent de226751784104e1f4fb486948ac0dab3cb4ec52 largefiles: refactor downloading of all largefiles to generic function diff --git a/hgext/largefiles/lfcommands.py b/hgext/largefiles/lfcommands.py --- a/hgext/largefiles/lfcommands.py +++ b/hgext/largefiles/lfcommands.py @@ -11,7 +11,8 @@ import os import shutil -from mercurial import util, match as match_, hg, node, context, error, cmdutil +from mercurial import util, match as match_, hg, node, context, error, \ + cmdutil, scmutil from mercurial.i18n import _ import lfutil @@ -400,6 +401,23 @@ def cachelfiles(ui, repo, node): return ([], []) +def downloadlfiles(ui, repo, rev=None): + matchfn = scmutil.match(repo[None], + [repo.wjoin(lfutil.shortname)], {}) + def prepare(ctx, fns): + 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) + ui.status(_("%d additional largefiles cached\n") % totalsuccess) + if totalmissing > 0: + ui.status(_("%d largefiles failed to download\n") % totalmissing) + return totalsuccess, totalmissing + def updatelfiles(ui, repo, filelist=None, printmessage=True): wlock = repo.wlock() try: diff --git a/hgext/largefiles/overrides.py b/hgext/largefiles/overrides.py --- a/hgext/largefiles/overrides.py +++ b/hgext/largefiles/overrides.py @@ -706,23 +706,11 @@ def overrideclone(orig, ui, source, dest branch=opts.get('branch')) if result is None: return True - totalsuccess = 0 - totalmissing = 0 if opts.get('all_largefiles'): sourcerepo, destrepo = result - matchfn = scmutil.match(destrepo[None], - [destrepo.wjoin(lfutil.shortname)], {}) - def prepare(ctx, fns): - pass - for ctx in cmdutil.walkchangerevs(destrepo, matchfn, {'rev' : None}, - prepare): - success, missing = lfcommands.cachelfiles(ui, destrepo, 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) - return totalmissing != 0 + success, missing = lfcommands.downloadlfiles(ui, destrepo, None) + return missing != 0 + return result is None def overriderebase(orig, ui, repo, **opts): repo._isrebasing = True