largefiles: refactor downloading of all largefiles to generic function
authorNa'Tosha Bard <natosha@unity3d.com>
Sat, 12 May 2012 09:59:01 +0200
changeset 16691 7d6a660ca151
parent 16690 de2267517841
child 16692 b9969574540a
largefiles: refactor downloading of all largefiles to generic function
hgext/largefiles/lfcommands.py
hgext/largefiles/overrides.py
--- a/hgext/largefiles/lfcommands.py	Sat May 12 20:06:04 2012 +0200
+++ b/hgext/largefiles/lfcommands.py	Sat May 12 09:59:01 2012 +0200
@@ -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 @@
 
     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:
--- a/hgext/largefiles/overrides.py	Sat May 12 20:06:04 2012 +0200
+++ b/hgext/largefiles/overrides.py	Sat May 12 09:59:01 2012 +0200
@@ -706,23 +706,11 @@
                       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