D4020: pure: create type for revlog v0 index
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Wed Aug 1 18:48:36 UTC 2018
martinvonz created this revision.
Herald added a reviewer: indygreg.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
The new type takes care of hiding the nullid entry. This type helps us
transition away from including that entry at index[len(index)-1].
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D4020
AFFECTED FILES
mercurial/revlog.py
CHANGE DETAILS
diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -789,6 +789,14 @@
indexformatv0_pack = indexformatv0.pack
indexformatv0_unpack = indexformatv0.unpack
+class revlogoldindex(list):
+ def __len__(self):
+ return list.__len__(self) + 1
+ def __getitem__(self, i):
+ if i == -1 or i == len(self) - 1:
+ return (0, 0, 0, -1, -1, -1, -1, nullid)
+ return list.__getitem__(self, i)
+
class revlogoldio(object):
def __init__(self):
self.size = indexformatv0.size
@@ -810,10 +818,7 @@
nodemap[e[6]] = n
n += 1
- # add the magic null revision at -1
- index.append((0, 0, 0, -1, -1, -1, -1, nullid))
-
- return index, nodemap, None
+ return revlogoldindex(index), nodemap, None
def packentry(self, entry, node, version, rev):
if gettype(entry[0]):
To: martinvonz, indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list