diff -r a5493a251ad3 -r bf7fb97aecf1 contrib/perf.py --- a/contrib/perf.py Mon Feb 04 09:10:07 2019 -0800 +++ b/contrib/perf.py Mon Jan 21 16:04:48 2019 +0000 @@ -2409,10 +2409,15 @@ # add unfiltered allfilters.append(None) - branchcacheread = safeattrsetter(branchmap, b'read') + if util.safehasattr(branchmap.branchcache, 'fromfile'): + branchcacheread = safeattrsetter(branchmap.branchcache, b'fromfile') + branchcacheread.set(classmethod(lambda *args: None)) + else: + # older versions + branchcacheread = safeattrsetter(branchmap, b'read') + branchcacheread.set(lambda *args: None) branchcachewrite = safeattrsetter(branchmap.branchcache, b'write') - branchcacheread.set(lambda repo: None) - branchcachewrite.set(lambda bc, repo: None) + branchcachewrite.set(lambda *args: None) try: for name in allfilters: printname = name @@ -2556,9 +2561,15 @@ repo.branchmap() # make sure we have a relevant, up to date branchmap + try: + fromfile = branchmap.branchcache.fromfile + except AttributeError: + # older versions + fromfile = branchmap.read + currentfilter = filter # try once without timer, the filter may not be cached - while branchmap.read(repo) is None: + while fromfile(repo) is None: currentfilter = subsettable.get(currentfilter) if currentfilter is None: raise error.Abort(b'No branchmap cached for %s repo' @@ -2569,7 +2580,7 @@ if clearrevlogs: clearchangelog(repo) def bench(): - branchmap.read(repo) + fromfile(repo) timer(bench, setup=setup) fm.end()