contrib/perf.py
changeset 51519 ec640dc9cebd
parent 51493 82c1a388e86a
child 51544 06671781b04d
equal deleted inserted replaced
51518:c7e81615b5c4 51519:ec640dc9cebd
  4203             repo.filtered(name).branchmap()
  4203             repo.filtered(name).branchmap()
  4204     if not filternames or b'unfiltered' in filternames:
  4204     if not filternames or b'unfiltered' in filternames:
  4205         # add unfiltered
  4205         # add unfiltered
  4206         allfilters.append(None)
  4206         allfilters.append(None)
  4207 
  4207 
  4208     if util.safehasattr(branchmap.branchcache, 'fromfile'):
  4208     old_branch_cache_from_file = None
       
  4209     branchcacheread = None
       
  4210     if util.safehasattr(branchmap, 'branch_cache_from_file'):
       
  4211         old_branch_cache_from_file = branchmap.branch_cache_from_file
       
  4212         branchmap.branch_cache_from_file = lambda *args: None
       
  4213     elif util.safehasattr(branchmap.branchcache, 'fromfile'):
  4209         branchcacheread = safeattrsetter(branchmap.branchcache, b'fromfile')
  4214         branchcacheread = safeattrsetter(branchmap.branchcache, b'fromfile')
  4210         branchcacheread.set(classmethod(lambda *args: None))
  4215         branchcacheread.set(classmethod(lambda *args: None))
  4211     else:
  4216     else:
  4212         # older versions
  4217         # older versions
  4213         branchcacheread = safeattrsetter(branchmap, b'read')
  4218         branchcacheread = safeattrsetter(branchmap, b'read')
  4214         branchcacheread.set(lambda *args: None)
  4219         branchcacheread.set(lambda *args: None)
  4215     branchcachewrite = safeattrsetter(branchmap.branchcache, b'write')
  4220     if util.safehasattr(branchmap, '_LocalBranchCache'):
  4216     branchcachewrite.set(lambda *args: None)
  4221         branchcachewrite = safeattrsetter(branchmap._LocalBranchCache, b'write')
       
  4222         branchcachewrite.set(lambda *args: None)
       
  4223     else:
       
  4224         branchcachewrite = safeattrsetter(branchmap.branchcache, b'write')
       
  4225         branchcachewrite.set(lambda *args: None)
  4217     try:
  4226     try:
  4218         for name in allfilters:
  4227         for name in allfilters:
  4219             printname = name
  4228             printname = name
  4220             if name is None:
  4229             if name is None:
  4221                 printname = b'unfiltered'
  4230                 printname = b'unfiltered'
  4222             timer(getbranchmap(name), title=printname)
  4231             timer(getbranchmap(name), title=printname)
  4223     finally:
  4232     finally:
  4224         branchcacheread.restore()
  4233         if old_branch_cache_from_file is not None:
       
  4234             branchmap.branch_cache_from_file = old_branch_cache_from_file
       
  4235         if branchcacheread is not None:
       
  4236             branchcacheread.restore()
  4225         branchcachewrite.restore()
  4237         branchcachewrite.restore()
  4226     fm.end()
  4238     fm.end()
  4227 
  4239 
  4228 
  4240 
  4229 @command(
  4241 @command(
  4379     else:
  4391     else:
  4380         repo = repoview.repoview(repo, filter)
  4392         repo = repoview.repoview(repo, filter)
  4381 
  4393 
  4382     repo.branchmap()  # make sure we have a relevant, up to date branchmap
  4394     repo.branchmap()  # make sure we have a relevant, up to date branchmap
  4383 
  4395 
  4384     try:
  4396     fromfile = getattr(branchmap, 'branch_cache_from_file', None)
  4385         fromfile = branchmap.branchcache.fromfile
  4397     if fromfile is None:
  4386     except AttributeError:
  4398         fromfile = getattr(branchmap.branchcache, 'fromfile', None)
  4387         # older versions
  4399     if fromfile is None:
  4388         fromfile = branchmap.read
  4400         fromfile = branchmap.read
  4389 
  4401 
  4390     currentfilter = filter
  4402     currentfilter = filter
  4391     # try once without timer, the filter may not be cached
  4403     # try once without timer, the filter may not be cached
  4392     while fromfile(repo) is None:
  4404     while fromfile(repo) is None: