D1764: revlog: don't use slicing to return parents
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Wed Dec 27 00:35:58 UTC 2017
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
This is the only place we use a slice on index entries, which
are currently tuples. In preparation for moving away from tuples,
let's stop using slices so we don't have to implement that support
on the new type.
We also tweak the logic slightly so the exception only catches the
IndexError on the index lookup, not on the index entry lookup. The
old code should never have been buggy. But it was semantically wrong.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D1764
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
@@ -622,12 +622,14 @@
def parentrevs(self, rev):
try:
- return self.index[rev][5:7]
+ entry = self.index[rev]
except IndexError:
if rev == wdirrev:
raise error.WdirUnsupported
raise
+ return entry[5], entry[6]
+
def node(self, rev):
try:
return self.index[rev][7]
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list