[PATCH V2] revlog: use raw revision for rawsize
Augie Fackler
raf at durin42.com
Mon Apr 3 16:20:38 EDT 2017
On Sun, Apr 02, 2017 at 06:58:39PM -0700, Jun Wu wrote:
> # HG changeset patch
> # User Jun Wu <quark at fb.com>
> # Date 1491184623 25200
> # Sun Apr 02 18:57:03 2017 -0700
> # Node ID 8482a52e811195186399f21b87a1a6a2760593fa
> # Parent 04ec317b81280c189fcea33a05c8cbbac3c186b1
> # Available At https://bitbucket.org/quark-zju/hg-draft
queued, thanks
> # hg pull https://bitbucket.org/quark-zju/hg-draft -r 8482a52e8111
> revlog: use raw revision for rawsize
>
> When writing the revlog-ng index, the third field is len(rawtext). See
> revlog._addrevision:
>
> textlen = len(rawtext)
> ....
> e = (offset_type(offset, flags), l, textlen,
> base, link, p1r, p2r, node)
> self.index.insert(-1, e)
>
> Therefore, revlog.index[rev][2] returned by revlog.rawsize should be
> len(rawtext), where "rawtext" is revlog.revision(raw=True).
>
> Unfortunately it's hard to add a test for this code path because "if l >= 0"
> catches most cases.
>
> diff --git a/mercurial/revlog.py b/mercurial/revlog.py
> --- a/mercurial/revlog.py
> +++ b/mercurial/revlog.py
> @@ -445,5 +445,5 @@ class revlog(object):
> return l
>
> - t = self.revision(rev)
> + t = self.revision(rev, raw=True)
> return len(t)
> size = rawsize
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list