changelog: introduce a 'tiprev' method
Accessing tiprev is a common need through the code base. It is usually done
using "len(changelog) -1". That form is tedious and error-prone. For example,
it will give wrong results on filtered changelog (if the unfiltered tip is
filtered).
As a result, we introduce a simple 'tiprev()' method to provide this exact
information in a nice way.
--- a/mercurial/changelog.py Wed Jan 17 15:47:38 2018 -0500
+++ b/mercurial/changelog.py Thu May 04 02:23:21 2017 +0200
@@ -295,6 +295,11 @@
self._divert = False
self.filteredrevs = frozenset()
+ def tiprev(self):
+ for i in xrange(len(self) -1, -2, -1):
+ if i not in self.filteredrevs:
+ return i
+
def tip(self):
"""filtered version of revlog.tip"""
for i in xrange(len(self) -1, -2, -1):