--- a/mercurial/localrepo.py Wed May 18 23:11:34 2011 +0200
+++ b/mercurial/localrepo.py Wed May 18 23:26:26 2011 +0200
@@ -1544,18 +1544,23 @@
return fstate[1][x]
bundler = changegroup.bundle10(lookup)
+ reorder = self.ui.config('bundle', 'reorder', 'auto')
+ if reorder == 'auto':
+ reorder = None
+ else:
+ reorder = util.parsebool(reorder)
def gengroup():
# Create a changenode group generator that will call our functions
# back to lookup the owning changenode and collect information.
- for chunk in cl.group(csets, bundler):
+ for chunk in cl.group(csets, bundler, reorder=reorder):
yield chunk
self.ui.progress(_('bundling'), None)
# Create a generator for the manifestnodes that calls our lookup
# and data collection functions back.
count[0] = 0
- for chunk in mf.group(prune(mf, mfs), bundler):
+ for chunk in mf.group(prune(mf, mfs), bundler, reorder=reorder):
yield chunk
self.ui.progress(_('bundling'), None)
@@ -1572,7 +1577,7 @@
first = True
for chunk in filerevlog.group(prune(filerevlog, fstate[1]),
- bundler):
+ bundler, reorder=reorder):
if first:
if chunk == bundler.close():
break
@@ -1640,17 +1645,22 @@
return cl.node(revlog.linkrev(revlog.rev(x)))
bundler = changegroup.bundle10(lookup)
+ reorder = self.ui.config('bundle', 'reorder', 'auto')
+ if reorder == 'auto':
+ reorder = None
+ else:
+ reorder = util.parsebool(reorder)
def gengroup():
'''yield a sequence of changegroup chunks (strings)'''
# construct a list of all changed files
- for chunk in cl.group(nodes, bundler):
+ for chunk in cl.group(nodes, bundler, reorder=reorder):
yield chunk
self.ui.progress(_('bundling'), None)
count[0] = 0
- for chunk in mf.group(gennodelst(mf), bundler):
+ for chunk in mf.group(gennodelst(mf), bundler, reorder=reorder):
yield chunk
self.ui.progress(_('bundling'), None)
@@ -1661,7 +1671,8 @@
raise util.Abort(_("empty or missing revlog for %s") % fname)
fstate[0] = fname
first = True
- for chunk in filerevlog.group(gennodelst(filerevlog), bundler):
+ for chunk in filerevlog.group(gennodelst(filerevlog), bundler,
+ reorder=reorder):
if first:
if chunk == bundler.close():
break