revlog: delete isdescendantrev() in favor of isancestorrev()
As agreed on by Boris, Yuya, and me on D3929.
Differential Revision: https://phab.mercurial-scm.org/D3934
--- a/mercurial/context.py Sat Jun 30 12:42:49 2018 +0530
+++ b/mercurial/context.py Thu Jul 12 08:14:21 2018 -0700
@@ -591,7 +591,7 @@
def descendant(self, other):
"""True if other is descendant of this changeset"""
- return self._repo.changelog.isdescendantrev(other._rev, self._rev)
+ return self._repo.changelog.isancestorrev(self._rev, other._rev)
def walk(self, match):
'''Generates matching file names.'''
--- a/mercurial/revlog.py Sat Jun 30 12:42:49 2018 +0530
+++ b/mercurial/revlog.py Thu Jul 12 08:14:21 2018 -0700
@@ -1645,21 +1645,6 @@
c.append(self.node(r))
return c
- def isdescendantrev(self, a, b):
- """True if revision a is a descendant of revision b
-
- A revision is considered a descendant of itself.
-
- The implementation of this is trivial but the use of
- commonancestorsheads is not."""
- if b == nullrev:
- return True
- elif a == b:
- return True
- elif a < b:
- return False
- return b in self._commonancestorsheads(a, b)
-
def commonancestorsheads(self, a, b):
"""calculate all the heads of the common ancestors of nodes a and b"""
a, b = self.rev(a), self.rev(b)
@@ -1684,8 +1669,17 @@
def isancestorrev(self, a, b):
"""return True if revision a is an ancestor of revision b
- A revision is considered an ancestor of itself."""
- return self.isdescendantrev(b, a)
+ A revision is considered an ancestor of itself.
+
+ The implementation of this is trivial but the use of
+ commonancestorsheads is not."""
+ if a == nullrev:
+ return True
+ elif a == b:
+ return True
+ elif a > b:
+ return False
+ return a in self._commonancestorsheads(a, b)
def ancestor(self, a, b):
"""calculate the "best" common ancestor of nodes a and b"""