[PATCH 1 of 4] changegroup: use changelog.readfiles

Gregory Szorc gregory.szorc at gmail.com
Sun Feb 28 07:27:30 UTC 2016


# HG changeset patch
# User Gregory Szorc <gregory.szorc at gmail.com>
# Date 1456643165 28800
#      Sat Feb 27 23:06:05 2016 -0800
# Node ID 28cf83f79951bba88e324c66e66261e06030dc46
# Parent  41dcd754526612c43b9695df8851557c851828ef
changegroup: use changelog.readfiles

We have a dedicated function to get just the list of files in
a changelog entry. Use it.

This will presumably speed up changegroup application since we're
no longer decoding the entire changelog entry. But I didn't measure
the impact.

diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py
--- a/mercurial/changegroup.py
+++ b/mercurial/changegroup.py
@@ -358,17 +358,17 @@ class cg1unpacker(object):
                     def __call__(self):
                         repo.ui.progress(self._step, self._count,
                                          unit=_('chunks'), total=self._total)
                         self._count += 1
                 self.callback = prog(_('changesets'), expectedtotal)
 
                 efiles = set()
                 def onchangelog(cl, node):
-                    efiles.update(cl.read(node)[3])
+                    efiles.update(cl.readfiles(node))
 
                 self.changelogheader()
                 srccontent = cl.addgroup(self, csmap, trp,
                                          addrevisioncb=onchangelog)
                 efiles = len(efiles)
 
                 if not (srccontent or emptyok):
                     raise error.Abort(_("received changelog group is empty"))


More information about the Mercurial-devel mailing list