context: spell out the logic around linkrev adjustement starting point
We make the intent of the `_changeid` and `_changectx` checks explicit. The
same logic was previously performed by the `self.rev()` call. The new code is
a bit redundant, but much clearer.
--- a/mercurial/context.py Mon Nov 19 14:14:56 2018 +0000
+++ b/mercurial/context.py Wed Oct 10 00:49:30 2018 +0200
@@ -769,10 +769,17 @@
'linkrev-shadowing' when a file revision is used by multiple
changesets.
"""
+ toprev = None
attrs = vars(self)
- hastoprev = (r'_changeid' in attrs or r'_changectx' in attrs)
- if hastoprev:
- return self._adjustlinkrev(self.rev(), inclusive=True)
+ if r'_changeid' in attrs:
+ # We have a cached value already
+ toprev = self._changeid
+ elif r'_changectx' in attrs:
+ # We know which changelog entry we are coming from
+ toprev = self._changectx.rev()
+
+ if toprev is not None:
+ return self._adjustlinkrev(toprev, inclusive=True)
else:
return self.linkrev()