[PATCH 3 of 3] revlog: support reading general deltas

Matt Mackall mpm at selenic.com
Thu May 5 13:38:49 CDT 2011


On Thu, 2011-05-05 at 12:12 +0200, Sune Foldager wrote:
> On Thu, May 05, 2011 at 10:59:26 +0200, Benoit Boissinot wrote:
> >On Wed, May 4, 2011 at 11:42 PM, Sune Foldager <cryo at cyanite.org> wrote:
> >> # HG changeset patch
> >> # User Sune Foldager <cryo at cyanite.org>
> >> # Date 1304544568 -7200
> >> # Node ID 7f2e8ed280a6b1c272ec080fd2ca2315a0d264e7
> >> # Parent  39f6e0127ff15c5ad82b989d387402ec83ea30d4
> >> revlog: support reading general deltas
> >>
> >> Parentdelta (per entry) takes precedence over generaldelta (per revlog).
> >>
> >> diff --git a/mercurial/revlog.py b/mercurial/revlog.py
> >> --- a/mercurial/revlog.py
> >> +++ b/mercurial/revlog.py
> >> @@ -28,10 +28,11 @@
> >>  REVLOGNG = 1
> >>  REVLOGNGINLINEDATA = (1 << 16)
> >>  REVLOGSHALLOW = (1 << 17)
> >> +REVLOG_GENERALDELTA = (1 << 18)
> >
> >Please keep the coding style consistent.
> 
> If only it were to begin with... notice we have:
> 
> # revlog index flags
> REVIDX_PARENTDELTA  = 1
> REVIDX_PUNCHED_FLAG = 2
> REVIDX_KNOWN_FLAGS = REVIDX_PUNCHED_FLAG | REVIDX_PARENTDELTA
> 
> ..one has '_FLAG' at the end, all have _'s. And:
> 
> REVLOGNGINLINEDATA = (1 << 16)
> REVLOGSHALLOW = (1 << 17)
> REVLOG_GENERALDELTA = (1 << 18)
> REVLOG_DEFAULT_FLAGS = REVLOGNGINLINEDATA
> REVLOG_DEFAULT_FORMAT = REVLOGNG
> REVLOG_DEFAULT_VERSION = REVLOG_DEFAULT_FORMAT | REVLOG_DEFAULT_FLAGS
> REVLOGNG_FLAGS = REVLOGNGINLINEDATA | REVLOGSHALLOW | REVLOG_GENERALDELTA
> 
> ..some have, some don't. I would prefer using _ in all of them. Thoughts?

The standard is: don't use underbars in identifiers. Believe it or not,
this standard was conceived with full awareness that there are in fact
lots of underbars in the current code. That is the whole point: to get
rid of them.

Here's a quiz: which of the following Python standard names have
underbar separators:

"get item"
"get attr"
"has attr"
"from keys"
"set default"
"has key"
"iter keys"
"size of"
"base string"
"call stats"
"call tracing"
"get recursion limit"
"byte order"
"raw input"
"frozen set"
"is instance"
"get default encoding"
"version info"
"hex version"
"api version"
"path hooks"
"warn options"
"split lines"
"url open"
"starts with"
"swap case"

extra credit:

"set debug level"


If you can get 100% on this quiz without consulting a reference,
congratulations, you are excused from today's lesson on the value of
consistent naming conventions.

If you got less than 100%, you instead get a "run time exception".

-- 
Mathematics is the supreme nostalgia of our time.




More information about the Mercurial-devel mailing list