--- a/hgext3rd/evolve/utility.py Sat Mar 11 08:46:21 2017 -0800
+++ b/hgext3rd/evolve/utility.py Sat Mar 11 09:08:20 2017 -0800
@@ -4,6 +4,7 @@
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
+from mercurial import node
def obsexcmsg(ui, message, important=False):
verbose = ui.configbool('experimental', 'verbose-obsolescence-exchange',
@@ -18,3 +19,20 @@
if ui.configbool('experimental', 'verbose-obsolescence-exchange', False):
topic = 'OBSEXC'
ui.progress(topic, *args, **kwargs)
+
+_depthcache = {}
+def depth(repo, rev):
+ cl = repo.changelog
+ n = cl.node(rev)
+ revdepth = _depthcache.get(n, None)
+ if revdepth is None:
+ p1, p2 = cl.parentrevs(rev)
+ if p1 == node.nullrev:
+ revdepth = 1
+ elif p2 == node.nullrev:
+ revdepth = depth(repo, p1) + 1
+ else:
+ # XXX we should just find the common ancestors
+ revdepth = len(list(cl.ancestors([rev], inclusive=True)))
+ _depthcache[n] = revdepth
+ return revdepth