D4019: index: drop support for negative indexes into the index

martinvonz (Martin von Zweigbergk) phabricator at mercurial-scm.org
Wed Aug 1 18:48:35 UTC 2018


martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  I want index[i] to work for any valid revnum including -1 (as it
  already does), and I also want len(index) to be the number of
  revisions in the index (not counting the null revision), so it cannot
  also support negative revision numbers other than -1 for nullid.
  
  I didn't bother removing support for it from revlog v0.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4019

AFFECTED FILES
  mercurial/cext/revlog.c
  mercurial/pure/parsers.py

CHANGE DETAILS

diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py
--- a/mercurial/pure/parsers.py
+++ b/mercurial/pure/parsers.py
@@ -48,8 +48,6 @@
     def _fix_index(self, i):
         if not isinstance(i, int):
             raise TypeError("expecting int indexes")
-        if i < 0:
-            i = len(self) + i
         if i < 0 or i >= len(self):
             raise IndexError
         return i
diff --git a/mercurial/cext/revlog.c b/mercurial/cext/revlog.c
--- a/mercurial/cext/revlog.c
+++ b/mercurial/cext/revlog.c
@@ -163,9 +163,6 @@
 		return nullentry;
 	}
 
-	if (pos < 0)
-		pos += length;
-
 	if (pos < 0 || pos >= length) {
 		PyErr_SetString(PyExc_IndexError, "revlog index out of range");
 		return NULL;



To: martinvonz, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list