Patchwork D7474: localrepo: extract handling of some special value in __getitem__

login
register
mail settings
Submitter phabricator
Date Nov. 22, 2019, 9:19 a.m.
Message ID <differential-rev-PHID-DREV-qyvphhhe752tknjfxex4-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/43409/
State Superseded
Headers show

Comments

phabricator - Nov. 22, 2019, 9:19 a.m.
marmoute created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  The value "null" will always be present in a repository. So this lookup should
  always succeed and do not need to be in the general try/catch.

REPOSITORY
  rHG Mercurial

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

AFFECTED FILES
  mercurial/localrepo.py

CHANGE DETAILS




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

Patch

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1530,14 +1530,14 @@ 
                 if i not in self.changelog.filteredrevs
             ]
 
+        # dealing with some special values
+        if changeid == b'null':
+            return context.changectx(self, nullrev, nullid)
         # dealing with arbitrary values
         try:
             if isinstance(changeid, int):
                 node = self.changelog.node(changeid)
                 rev = changeid
-            elif changeid == b'null':
-                node = nullid
-                rev = nullrev
             elif changeid == b'tip':
                 node = self.changelog.tip()
                 rev = self.changelog.rev(node)