changeset 20928:91b47139d0cb

localrepo: move the getlocalbundle method in changegroup module This is a gratuitous code move aimed at reducing the localrepo bloatness. The method had 3 callers total, far too few for being kept in local repo.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Tue, 01 Apr 2014 14:33:23 -0700
parents 24a443948627
children afe0b48ef2d7
files mercurial/changegroup.py mercurial/commands.py mercurial/exchange.py mercurial/localrepo.py
diffstat 4 files changed, 16 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/changegroup.py	Tue Apr 01 14:25:03 2014 -0700
+++ b/mercurial/changegroup.py	Tue Apr 01 14:33:23 2014 -0700
@@ -480,3 +480,13 @@
     bundler = bundle10(repo)
     return getsubset(repo, outgoing, bundler, source)
 
+def getlocalbundle(repo, source, outgoing, bundlecaps=None):
+    """Like getbundle, but taking a discovery.outgoing as an argument.
+
+    This is only implemented for local repos and reuses potentially
+    precomputed sets in outgoing."""
+    if not outgoing.missing:
+        return None
+    bundler = bundle10(repo, bundlecaps)
+    return getsubset(repo, outgoing, bundler, source)
+
--- a/mercurial/commands.py	Tue Apr 01 14:25:03 2014 -0700
+++ b/mercurial/commands.py	Tue Apr 01 14:33:23 2014 -0700
@@ -1142,7 +1142,7 @@
                                                 onlyheads=heads,
                                                 force=opts.get('force'),
                                                 portable=True)
-        cg = repo.getlocalbundle('bundle', outgoing, bundlecaps)
+        cg = changegroup.getlocalbundle(repo, 'bundle', outgoing, bundlecaps)
     if not cg:
         scmutil.nochangesfound(ui, repo, outgoing and outgoing.excluded)
         return 1
--- a/mercurial/exchange.py	Tue Apr 01 14:25:03 2014 -0700
+++ b/mercurial/exchange.py	Tue Apr 01 14:33:23 2014 -0700
@@ -187,7 +187,8 @@
                                    'push',
                                    fastpath=True)
     else:
-        cg = pushop.repo.getlocalbundle('push', outgoing, bundlecaps)
+        cg = changegroup.getlocalbundle(pushop.repo, 'push', outgoing,
+                                        bundlecaps)
 
     # apply changegroup to remote
     if unbundle:
--- a/mercurial/localrepo.py	Tue Apr 01 14:25:03 2014 -0700
+++ b/mercurial/localrepo.py	Tue Apr 01 14:33:23 2014 -0700
@@ -1683,16 +1683,6 @@
     def push(self, remote, force=False, revs=None, newbranch=False):
         return exchange.push(self, remote, force, revs, newbranch)
 
-    def getlocalbundle(self, source, outgoing, bundlecaps=None):
-        """Like getbundle, but taking a discovery.outgoing as an argument.
-
-        This is only implemented for local repos and reuses potentially
-        precomputed sets in outgoing."""
-        if not outgoing.missing:
-            return None
-        bundler = changegroup.bundle10(self, bundlecaps)
-        return changegroup.getsubset(self, outgoing, bundler, source)
-
     def getbundle(self, source, heads=None, common=None, bundlecaps=None):
         """Like changegroupsubset, but returns the set difference between the
         ancestors of heads and the ancestors common.
@@ -1710,9 +1700,9 @@
             common = [nullid]
         if not heads:
             heads = cl.heads()
-        return self.getlocalbundle(source,
-                                   discovery.outgoing(cl, common, heads),
-                                   bundlecaps=bundlecaps)
+        outgoing = discovery.outgoing(cl, common, heads)
+        return changegroup.getlocalbundle(self, source, outgoing,
+                                          bundlecaps=bundlecaps)
 
     def changegroup(self, basenodes, source):
         # to avoid a race we use changegroupsubset() (issue1320)