largefiles: refactor downloading of all largefiles to generic function

This commit is contained in:
Na'Tosha Bard 2012-05-12 09:59:01 +02:00
parent 803e845d28
commit faa9f04319
2 changed files with 22 additions and 16 deletions

View File

@ -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:

View File

@ -706,23 +706,11 @@ def overrideclone(orig, ui, source, dest=None, **opts):
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