Mercurial > public > mercurial-scm > hg
comparison mercurial/changegroup.py @ 39239:0617a700ef7b
changegroup: change topics during generation
Changegroup generation and consumption currently uses different sets of
topics. Generation uses "bundling" and consumption uses the name of the
thing being consumed.
This commit makes the topic and unit names consistent on both ends.
The reason I chose to change the generation side is because when
"bundling" is used for 3 different stages, it is unclear which stage
of changegroup generation we're in. By making the topics "changesets,"
"manifests," and "files," one can get a better feel for how far along
in the bundling process we are.
Differential Revision: https://phab.mercurial-scm.org/D4272
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Fri, 10 Aug 2018 13:43:26 -0700 |
parents | cc957b9dc335 |
children | aad4b46e89bb |
comparison
equal
deleted
inserted
replaced
39238:cc957b9dc335 | 39239:0617a700ef7b |
---|---|
656 ellipsis=True, | 656 ellipsis=True, |
657 ) | 657 ) |
658 | 658 |
659 def deltagroup(repo, store, nodes, ischangelog, lookup, forcedeltaparentprev, | 659 def deltagroup(repo, store, nodes, ischangelog, lookup, forcedeltaparentprev, |
660 allowreorder, | 660 allowreorder, |
661 units=None, | 661 topic=None, |
662 ellipses=False, clrevtolocalrev=None, fullclnodes=None, | 662 ellipses=False, clrevtolocalrev=None, fullclnodes=None, |
663 precomputedellipsis=None): | 663 precomputedellipsis=None): |
664 """Calculate deltas for a set of revisions. | 664 """Calculate deltas for a set of revisions. |
665 | 665 |
666 Is a generator of ``revisiondelta`` instances. | 666 Is a generator of ``revisiondelta`` instances. |
667 | 667 |
668 If units is not None, progress detail will be generated, units specifies | 668 If topic is not None, progress detail will be generated using this |
669 the type of revlog that is touched (changelog, manifest, etc.). | 669 topic name (e.g. changesets, manifests, etc). |
670 """ | 670 """ |
671 if not nodes: | 671 if not nodes: |
672 return | 672 return |
673 | 673 |
674 # We perform two passes over the revisions whose data we will emit. | 674 # We perform two passes over the revisions whose data we will emit. |
741 )) | 741 )) |
742 | 742 |
743 # We expect the first pass to be fast, so we only engage the progress | 743 # We expect the first pass to be fast, so we only engage the progress |
744 # meter for constructing the revision deltas. | 744 # meter for constructing the revision deltas. |
745 progress = None | 745 progress = None |
746 if units is not None: | 746 if topic is not None: |
747 progress = repo.ui.makeprogress(_('bundling'), unit=units, | 747 progress = repo.ui.makeprogress(topic, unit=_('chunks'), |
748 total=len(requests)) | 748 total=len(requests)) |
749 | 749 |
750 for i, delta in enumerate(store.emitrevisiondeltas(requests)): | 750 for i, delta in enumerate(store.emitrevisiondeltas(requests)): |
751 if progress: | 751 if progress: |
752 progress.update(i + 1) | 752 progress.update(i + 1) |
1000 self._repo, cl, nodes, True, lookupcl, | 1000 self._repo, cl, nodes, True, lookupcl, |
1001 self._forcedeltaparentprev, | 1001 self._forcedeltaparentprev, |
1002 # Reorder settings are currently ignored for changelog. | 1002 # Reorder settings are currently ignored for changelog. |
1003 True, | 1003 True, |
1004 ellipses=self._ellipses, | 1004 ellipses=self._ellipses, |
1005 units=_('changesets'), | 1005 topic=_('changesets'), |
1006 clrevtolocalrev={}, | 1006 clrevtolocalrev={}, |
1007 fullclnodes=self._fullclnodes, | 1007 fullclnodes=self._fullclnodes, |
1008 precomputedellipsis=self._precomputedellipsis) | 1008 precomputedellipsis=self._precomputedellipsis) |
1009 | 1009 |
1010 return state, gen | 1010 return state, gen |
1081 | 1081 |
1082 deltas = deltagroup( | 1082 deltas = deltagroup( |
1083 self._repo, store, prunednodes, False, lookupfn, | 1083 self._repo, store, prunednodes, False, lookupfn, |
1084 self._forcedeltaparentprev, self._reorder, | 1084 self._forcedeltaparentprev, self._reorder, |
1085 ellipses=self._ellipses, | 1085 ellipses=self._ellipses, |
1086 units=_('manifests'), | 1086 topic=_('manifests'), |
1087 clrevtolocalrev=clrevtolocalrev, | 1087 clrevtolocalrev=clrevtolocalrev, |
1088 fullclnodes=self._fullclnodes, | 1088 fullclnodes=self._fullclnodes, |
1089 precomputedellipsis=self._precomputedellipsis) | 1089 precomputedellipsis=self._precomputedellipsis) |
1090 | 1090 |
1091 yield tree, deltas | 1091 yield tree, deltas |
1138 return links | 1138 return links |
1139 else: | 1139 else: |
1140 linknodes = normallinknodes | 1140 linknodes = normallinknodes |
1141 | 1141 |
1142 repo = self._repo | 1142 repo = self._repo |
1143 progress = repo.ui.makeprogress(_('bundling'), unit=_('files'), | 1143 progress = repo.ui.makeprogress(_('files'), unit=_('files'), |
1144 total=len(changedfiles)) | 1144 total=len(changedfiles)) |
1145 for i, fname in enumerate(sorted(changedfiles)): | 1145 for i, fname in enumerate(sorted(changedfiles)): |
1146 filerevlog = repo.file(fname) | 1146 filerevlog = repo.file(fname) |
1147 if not filerevlog: | 1147 if not filerevlog: |
1148 raise error.Abort(_("empty or missing file data for %s") % | 1148 raise error.Abort(_("empty or missing file data for %s") % |