Re: [PATCH] revlog: use raw revision for rawsize
On 3/29/17 4:31 AM, Jun Wu wrote: # HG changeset patch # User Jun Wu # Date 1490758201 25200 # Tue Mar 28 20:30:01 2017 -0700 # Node ID 5c6ebe1cd99e9557b61ef51ed88e335ac87df8da # Parent 31073077267b5e330925d48098dd6e0fd28bdd8e revlog: use raw revision for rawsize diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -439,5 +439,5 @@ class revlog(object): return l -t = self.revision(self.node(rev)) +t = self.revision(self.node(rev), raw=True) return len(t) size = rawsize Having looked at the code, this is inside the "rawsize" function so this is an obviously correct fix. I have marked pre-reviewed in patchwork. Is there anywhere this gets exposed today? Maybe a test would be nice in the future. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: [PATCH] revlog: use raw revision for rawsize
Excerpts from Ryan McElroy's message of 2017-03-29 11:30:50 +0100: > On 3/29/17 4:31 AM, Jun Wu wrote: > > # HG changeset patch > > # User Jun Wu > > # Date 1490758201 25200 > > # Tue Mar 28 20:30:01 2017 -0700 > > # Node ID 5c6ebe1cd99e9557b61ef51ed88e335ac87df8da > > # Parent 31073077267b5e330925d48098dd6e0fd28bdd8e > > revlog: use raw revision for rawsize > > > > diff --git a/mercurial/revlog.py b/mercurial/revlog.py > > --- a/mercurial/revlog.py > > +++ b/mercurial/revlog.py > > @@ -439,5 +439,5 @@ class revlog(object): > > return l > > > > -t = self.revision(self.node(rev)) > > +t = self.revision(self.node(rev), raw=True) > > return len(t) > > size = rawsize > > > > Having looked at the code, this is inside the "rawsize" function so this > is an obviously correct fix. I have marked pre-reviewed in patchwork. > > Is there anywhere this gets exposed today? Maybe a test would be nice in > the future. Since the index will handle most cases, it seems not easy to get exposed unless index returns 0. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: [PATCH] revlog: use raw revision for rawsize
On Wed, 29 Mar 2017 11:30:50 +0100, Ryan McElroy wrote: > On 3/29/17 4:31 AM, Jun Wu wrote: > > # HG changeset patch > > # User Jun Wu > > # Date 1490758201 25200 > > # Tue Mar 28 20:30:01 2017 -0700 > > # Node ID 5c6ebe1cd99e9557b61ef51ed88e335ac87df8da > > # Parent 31073077267b5e330925d48098dd6e0fd28bdd8e > > revlog: use raw revision for rawsize > > > > diff --git a/mercurial/revlog.py b/mercurial/revlog.py > > --- a/mercurial/revlog.py > > +++ b/mercurial/revlog.py > > @@ -439,5 +439,5 @@ class revlog(object): > > return l > > > > -t = self.revision(self.node(rev)) > > +t = self.revision(self.node(rev), raw=True) > > return len(t) > > size = rawsize > > > > Having looked at the code, this is inside the "rawsize" function so this > is an obviously correct fix. I have marked pre-reviewed in patchwork. Yeah sounds good, but I'm not pretty sure if the "raw" of rawsize() is related to flagprocessor's. It was added at 56a7721ee3ec to bypass filelog.size(). This should be queued by someone who has more knowledge. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
Re: [PATCH] revlog: use raw revision for rawsize
Excerpts from Yuya Nishihara's message of 2017-03-31 22:49:54 +0900: > On Wed, 29 Mar 2017 11:30:50 +0100, Ryan McElroy wrote: > > On 3/29/17 4:31 AM, Jun Wu wrote: > > > # HG changeset patch > > > # User Jun Wu > > > # Date 1490758201 25200 > > > # Tue Mar 28 20:30:01 2017 -0700 > > > # Node ID 5c6ebe1cd99e9557b61ef51ed88e335ac87df8da > > > # Parent 31073077267b5e330925d48098dd6e0fd28bdd8e > > > revlog: use raw revision for rawsize > > > > > > diff --git a/mercurial/revlog.py b/mercurial/revlog.py > > > --- a/mercurial/revlog.py > > > +++ b/mercurial/revlog.py > > > @@ -439,5 +439,5 @@ class revlog(object): > > > return l > > > > > > -t = self.revision(self.node(rev)) > > > +t = self.revision(self.node(rev), raw=True) > > > return len(t) > > > size = rawsize > > > > > > > Having looked at the code, this is inside the "rawsize" function so this > > is an obviously correct fix. I have marked pre-reviewed in patchwork. > > Yeah sounds good, but I'm not pretty sure if the "raw" of rawsize() is related > to flagprocessor's. It was added at 56a7721ee3ec to bypass filelog.size(). Thanks for the context. It seems it's filelog.size who needs to be fixed. It has a "XXX" comment. With raw involved, things become tricker. I made a table at https://patchwork.mercurial-scm.org/patch/19851/ exploring raw, non-raw, renamed , non-raw with rename but no metadata. Maybe that should go to help/internals. > > This should be queued by someone who has more knowledge. ___ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel