diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -491,7 +491,9 @@ revset = repo.ui.config('experimental', 'revisions.disambiguatewithin') if revset: - revs = repo.anyrevs([revset], user=True) + if not util.safehasattr(repo, '_cacheddisambiguationrevs'): + repo._cacheddisambiguationrevs = repo.anyrevs([revset], user=True) + revs = repo._cacheddisambiguationrevs if cl.rev(node) in revs: hexnode = hex(node) for length in range(minlength, len(hexnode) + 1):