Mercurial > public > mercurial-scm > hg
diff mercurial/bundlerepo.py @ 31836:4598e8f43e20
bundlerepo: fix raw handling in revision()
Similar to fixes in revlog.py, this patch uses "rawtext" to explicitly label
contents expected to be raw, and makes sure content stored in _cache is raw
text.
Now test-flagprocessor.t points us to another issue.
author | Jun Wu <quark@fb.com> |
---|---|
date | Thu, 06 Apr 2017 17:45:47 -0700 |
parents | 4bafc80f827e |
children | 37e793918c07 |
line wrap: on
line diff
--- a/mercurial/bundlerepo.py Thu Apr 06 18:06:42 2017 -0700 +++ b/mercurial/bundlerepo.py Thu Apr 06 17:45:47 2017 -0700 @@ -131,28 +131,28 @@ if node == nullid: return "" - text = None + rawtext = None chain = [] iterrev = rev # reconstruct the revision if it is from a changegroup while iterrev > self.repotiprev: if self._cache and self._cache[1] == iterrev: - text = self._cache[2] + rawtext = self._cache[2] break chain.append(iterrev) iterrev = self.index[iterrev][3] - if text is None: - text = self.baserevision(iterrev) + if rawtext is None: + rawtext = self.baserevision(iterrev) while chain: delta = self._chunk(chain.pop()) - text = mdiff.patches(text, [delta]) + rawtext = mdiff.patches(rawtext, [delta]) - text, validatehash = self._processflags(text, self.flags(rev), + text, validatehash = self._processflags(rawtext, self.flags(rev), 'read', raw=raw) if validatehash: self.checkhash(text, node, rev=rev) - self._cache = (node, rev, text) + self._cache = (node, rev, rawtext) return text def baserevision(self, nodeorrev):