localrepo: move the changegroup method in changegroup module
This is a gratuitous code move aimed at reducing the localrepo bloatness.
The method had few callers, not enough to be kept in local repo.
The peer API stay unchanged.
--- a/mercurial/changegroup.py Tue Apr 01 14:40:35 2014 -0700
+++ b/mercurial/changegroup.py Tue Apr 01 15:08:27 2014 -0700
@@ -510,3 +510,7 @@
outgoing = discovery.outgoing(cl, common, heads)
return getlocalbundle(repo, source, outgoing, bundlecaps=bundlecaps)
+def changegroup(repo, basenodes, source):
+ # to avoid a race we use changegroupsubset() (issue1320)
+ return changegroupsubset(repo, basenodes, repo.heads(), source)
+
--- a/mercurial/localrepo.py Tue Apr 01 14:40:35 2014 -0700
+++ b/mercurial/localrepo.py Tue Apr 01 15:08:27 2014 -0700
@@ -140,7 +140,7 @@
return self._repo.between(pairs)
def changegroup(self, basenodes, source):
- return self._repo.changegroup(basenodes, source)
+ return changegroup.changegroup(self._repo, basenodes, source)
def changegroupsubset(self, bases, heads, source):
return changegroup.changegroupsubset(self._repo, bases, heads, source)
@@ -1683,11 +1683,6 @@
def push(self, remote, force=False, revs=None, newbranch=False):
return exchange.push(self, remote, force, revs, newbranch)
- def changegroup(self, basenodes, source):
- # to avoid a race we use changegroupsubset() (issue1320)
- return changegroup.changegroupsubset(self, basenodes, self.heads(),
- source)
-
@unfilteredmethod
def addchangegroup(self, source, srctype, url, emptyok=False):
"""Add the changegroup returned by source.read() to this repo.
--- a/mercurial/wireproto.py Tue Apr 01 14:40:35 2014 -0700
+++ b/mercurial/wireproto.py Tue Apr 01 15:08:27 2014 -0700
@@ -578,7 +578,7 @@
@wireprotocommand('changegroup', 'roots')
def changegroup(repo, proto, roots):
nodes = decodelist(roots)
- cg = repo.changegroup(nodes, 'serve')
+ cg = changegroupmod.changegroup(repo, nodes, 'serve')
return streamres(proto.groupchunks(cg))
@wireprotocommand('changegroupsubset', 'bases heads')