repoview: use the phasecache directly to determine mutable revisions
This speeds up no-change updates from 1.3s to 0.85s for my NetBSD test
repository.
Differential Revision: https://phab.mercurial-scm.org/D8670
--- a/mercurial/repoview.py Tue Jul 07 21:45:10 2020 +0200
+++ b/mercurial/repoview.py Sun Jun 28 01:08:13 2020 +0200
@@ -130,9 +130,7 @@
assert not repo.changelog.filteredrevs
# fast check to avoid revset call on huge repo
if repo._phasecache.hasnonpublicphases(repo):
- getphase = repo._phasecache.phase
- maymutable = filterrevs(repo, b'base')
- return frozenset(r for r in maymutable if getphase(repo, r))
+ return frozenset(repo._phasecache.getrevset(repo, phases.mutablephases))
return frozenset()