Mercurial > evolve
diff hgext3rd/serverminitopic.py @ 5428:3214dc282085 stable
serverminitopic: compatibility with sparse phaseroots and phasesets in 5.5
See also: https://phab.mercurial-scm.org/D8694 and its stack.
author | Joerg Sonnenberger <joerg@bec.de> |
---|---|
date | Tue, 21 Jul 2020 11:59:10 +0800 |
parents | a4d081923c81 |
children | ad7c9c0b7a63 |
line wrap: on
line diff
--- a/hgext3rd/serverminitopic.py Sat Jun 27 22:46:08 2020 +0800 +++ b/hgext3rd/serverminitopic.py Tue Jul 21 11:59:10 2020 +0800 @@ -33,6 +33,14 @@ default=False, ) +# hg <= 5.4 (e2d17974a869) +def nonpublicphaseroots(repo): + if util.safehasattr(repo._phasecache, 'nonpublicphaseroots'): + return repo._phasecache.nonpublicphaseroots(repo) + return set().union( + *[roots for roots in repo._phasecache.phaseroots[1:] if roots] + ) + def hasminitopic(repo): """true if minitopic is enabled on the repository @@ -106,11 +114,10 @@ cl = repo.changelog fr = cl.filteredrevs nm = cl.nodemap - for roots in repo._phasecache.phaseroots[1:]: - for n in roots: - r = nm.get(n) - if r not in fr and r < maxrev: - revs.add(r) + for n in nonpublicphaseroots(repo): + r = nm.get(n) + if r not in fr and r < maxrev: + revs.add(r) key = node.nullid revs = sorted(revs) if revs: