Mercurial > hg
diff mercurial/changegroup.py @ 38984:a3105433ecc4
changegroup: inline _revchunk() into group()
_revchunk() was pretty minimal. I think having all the code for
generating data composing the changegroup in one function makes
things easier to understand.
As part of the refactor, we now call the _revisiondelta* functions
explicitly. This paves the road to refactor their argument
signatures.
Differential Revision: https://phab.mercurial-scm.org/D4141
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 06 Aug 2018 11:13:25 -0700 |
parents | fbbda9ff3deb |
children | d85b0d81112b |
line wrap: on
line diff
--- a/mercurial/changegroup.py Mon Aug 06 11:06:22 2018 -0700 +++ b/mercurial/changegroup.py Mon Aug 06 11:13:25 2018 -0700 @@ -674,8 +674,23 @@ progress.update(r + 1) prev, curr = revs[r], revs[r + 1] linknode = lookup(store.node(curr)) - for c in self._revchunk(store, ischangelog, curr, prev, linknode): - yield c + + if self._ellipses: + delta = self._revisiondeltanarrow(store, ischangelog, + curr, prev, linknode) + else: + delta = self._revisiondeltanormal(store, ischangelog, + curr, prev, linknode) + + if not delta: + continue + + meta = self._builddeltaheader(delta) + l = len(meta) + sum(len(x) for x in delta.deltachunks) + yield chunkheader(l) + yield meta + for x in delta.deltachunks: + yield x if progress: progress.complete() @@ -995,24 +1010,6 @@ self._verbosenote(_('%8.i %s\n') % (size, fname)) progress.complete() - def _revchunk(self, store, ischangelog, rev, prev, linknode): - if self._ellipses: - fn = self._revisiondeltanarrow - else: - fn = self._revisiondeltanormal - - delta = fn(store, ischangelog, rev, prev, linknode) - if not delta: - return - - meta = self._builddeltaheader(delta) - l = len(meta) + sum(len(x) for x in delta.deltachunks) - - yield chunkheader(l) - yield meta - for x in delta.deltachunks: - yield x - def _revisiondeltanormal(self, store, ischangelog, rev, prev, linknode): node = store.node(rev) p1, p2 = store.parentrevs(rev)