changegroup: minor ordering and renaming changes for similarity
This eliminates some needless differences between the two changegroup variants
--- a/mercurial/localrepo.py Thu Mar 31 09:56:27 2011 -0500
+++ b/mercurial/localrepo.py Thu Mar 31 09:59:56 2011 -0500
@@ -1478,6 +1478,7 @@
mf = self.manifest
mfs = {} # needed manifests
fnodes = {} # needed file nodes
+ changedfiles = set()
# can we go through the fast path ?
heads.sort()
@@ -1498,7 +1499,6 @@
# logically divide up the task, generate the group.
def gengroup():
# The set of changed files starts empty.
- changedfiles = set()
count = [0]
def clookup(revlog, x):
@@ -1588,11 +1588,15 @@
nodes is the set of nodes to send"""
- self.hook('preoutgoing', throw=True, source=source)
+ cl = self.changelog
+ mf = self.manifest
+ mfs = {}
+ changedfiles = set()
- cl = self.changelog
+ self.hook('preoutgoing', throw=True, source=source)
+ self.changegroupinfo(nodes, source)
+
revset = set([cl.rev(n) for n in nodes])
- self.changegroupinfo(nodes, source)
def gennodelst(log):
for r in log:
@@ -1602,14 +1606,12 @@
def gengroup():
'''yield a sequence of changegroup chunks (strings)'''
# construct a list of all changed files
- changedfiles = set()
- mmfs = {}
count = [0]
def clookup(revlog, x):
c = cl.read(x)
changedfiles.update(c[3])
- mmfs.setdefault(c[0], x)
+ mfs.setdefault(c[0], x)
count[0] += 1
self.ui.progress(_('bundling'), count[0], unit=_('changesets'))
return x
@@ -1620,7 +1622,6 @@
changecount = count[0]
self.ui.progress(_('bundling'), None)
- mnfst = self.manifest
count = [0]
def mlookup(revlog, x):
count[0] += 1
@@ -1628,7 +1629,7 @@
unit=_('manifests'), total=changecount)
return cl.node(revlog.linkrev(revlog.rev(x)))
- for chunk in mnfst.group(gennodelst(mnfst), mlookup):
+ for chunk in mf.group(gennodelst(mf), mlookup):
yield chunk
self.ui.progress(_('bundling'), None)
@@ -1651,10 +1652,9 @@
yield fname
first = False
yield chunk
+ yield changegroup.closechunk()
self.ui.progress(_('bundling'), None)
- yield changegroup.closechunk()
-
if nodes:
self.hook('outgoing', node=hex(nodes[0]), source=source)