mercurial/revlog.py
changeset 41086 a28833d79aca
parent 41084 84491ae0b3f0
child 41115 536c83535cbd
--- a/mercurial/revlog.py	Mon Dec 17 10:57:13 2018 +0100
+++ b/mercurial/revlog.py	Fri Dec 21 05:27:38 2018 +0100
@@ -1533,14 +1533,18 @@
     def issnapshot(self, rev):
         """tells whether rev is a snapshot
         """
+        if not self._sparserevlog:
+            return self.deltaparent(rev) == nullrev
+        elif util.safehasattr(self.index, 'issnapshot'):
+            # directly assign the method to cache the testing and access
+            self.issnapshot = self.index.issnapshot
+            return self.issnapshot(rev)
         if rev == nullrev:
             return True
         entry = self.index[rev]
         base = entry[3]
         if base == rev:
             return True
-        elif not self._sparserevlog:
-            return False
         if base == nullrev:
             return True
         p1 = entry[5]