Mercurial > hg
comparison mercurial/changegroup.py @ 38995:ed25722da873
changegroup: move part of _revisiondeltanarrow into group()
Now all the logic for determining which delta generation code
is called lives in a single function.
Differential Revision: https://phab.mercurial-scm.org/D4187
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 06 Aug 2018 15:04:20 -0700 |
parents | 6076053589b9 |
children | 5baafb8fe253 |
comparison
equal
deleted
inserted
replaced
38994:6076053589b9 | 38995:ed25722da873 |
---|---|
708 progress.update(r + 1) | 708 progress.update(r + 1) |
709 prev, curr = revs[r], revs[r + 1] | 709 prev, curr = revs[r], revs[r + 1] |
710 linknode = lookup(store.node(curr)) | 710 linknode = lookup(store.node(curr)) |
711 | 711 |
712 if self._ellipses: | 712 if self._ellipses: |
713 delta = self._revisiondeltanarrow(store, ischangelog, | 713 linkrev = self._clnodetorev[linknode] |
714 curr, prev, linknode) | 714 self._clrevtolocalrev[linkrev] = curr |
715 | |
716 # This is a node to send in full, because the changeset it | |
717 # corresponds to was a full changeset. | |
718 if linknode in self._fullnodes: | |
719 delta = _revisiondeltanormal(store, curr, prev, linknode, | |
720 self._deltaparentfn) | |
721 elif linkrev not in self._precomputedellipsis: | |
722 delta = None | |
723 else: | |
724 delta = self._revisiondeltanarrow(store, ischangelog, | |
725 curr, linkrev, linknode) | |
715 else: | 726 else: |
716 delta = _revisiondeltanormal(store, curr, prev, linknode, | 727 delta = _revisiondeltanormal(store, curr, prev, linknode, |
717 self._deltaparentfn) | 728 self._deltaparentfn) |
718 | 729 |
719 if not delta: | 730 if not delta: |
1044 size += len(chunk) | 1055 size += len(chunk) |
1045 yield chunk | 1056 yield chunk |
1046 self._verbosenote(_('%8.i %s\n') % (size, fname)) | 1057 self._verbosenote(_('%8.i %s\n') % (size, fname)) |
1047 progress.complete() | 1058 progress.complete() |
1048 | 1059 |
1049 def _revisiondeltanarrow(self, store, ischangelog, rev, prev, linknode): | 1060 def _revisiondeltanarrow(self, store, ischangelog, rev, linkrev, linknode): |
1050 linkrev = self._clnodetorev[linknode] | |
1051 self._clrevtolocalrev[linkrev] = rev | |
1052 | |
1053 # This is a node to send in full, because the changeset it | |
1054 # corresponds to was a full changeset. | |
1055 if linknode in self._fullnodes: | |
1056 return _revisiondeltanormal(store, rev, prev, linknode, | |
1057 self._deltaparentfn) | |
1058 | |
1059 # At this point, a node can either be one we should skip or an | |
1060 # ellipsis. If it's not an ellipsis, bail immediately. | |
1061 if linkrev not in self._precomputedellipsis: | |
1062 return | |
1063 | |
1064 linkparents = self._precomputedellipsis[linkrev] | 1061 linkparents = self._precomputedellipsis[linkrev] |
1065 def local(clrev): | 1062 def local(clrev): |
1066 """Turn a changelog revnum into a local revnum. | 1063 """Turn a changelog revnum into a local revnum. |
1067 | 1064 |
1068 The ellipsis dag is stored as revnums on the changelog, | 1065 The ellipsis dag is stored as revnums on the changelog, |