context: take advantage of `_descendantrev` in introrev if available
authorBoris Feld <boris.feld@octobus.net>
Wed, 10 Oct 2018 00:50:34 +0200
changeset 40693 aee94f0a36cd
parent 40692 f3f4d8537b11
child 40694 8a0136f69027
context: take advantage of `_descendantrev` in introrev if available Before this changeset, `_descendantrev` was ignored and `introrev` could return a "wrong" result. I was previously fine because there seems to be no existing code using both `introrev` and `_descendantrev` at the same time. However, we would like to change that.
mercurial/context.py
--- a/mercurial/context.py	Wed Oct 10 00:49:30 2018 +0200
+++ b/mercurial/context.py	Wed Oct 10 00:50:34 2018 +0200
@@ -780,6 +780,11 @@
 
         if toprev is not None:
             return self._adjustlinkrev(toprev, inclusive=True)
+        elif r'_descendantrev' in attrs:
+            introrev = self._adjustlinkrev(self._descendantrev)
+            # be nice and cache the result of the computation
+            self._changeid = introrev
+            return introrev
         else:
             return self.linkrev()