contrib/perf.py
changeset 41565 bf7fb97aecf1
parent 41470 d1a273074f62
child 41615 328ca3b9e545
equal deleted inserted replaced
41564:a5493a251ad3 41565:bf7fb97aecf1
  2407             repo.filtered(name).branchmap()
  2407             repo.filtered(name).branchmap()
  2408     if not filternames or b'unfiltered' in filternames:
  2408     if not filternames or b'unfiltered' in filternames:
  2409         # add unfiltered
  2409         # add unfiltered
  2410         allfilters.append(None)
  2410         allfilters.append(None)
  2411 
  2411 
  2412     branchcacheread = safeattrsetter(branchmap, b'read')
  2412     if util.safehasattr(branchmap.branchcache, 'fromfile'):
       
  2413         branchcacheread = safeattrsetter(branchmap.branchcache, b'fromfile')
       
  2414         branchcacheread.set(classmethod(lambda *args: None))
       
  2415     else:
       
  2416         # older versions
       
  2417         branchcacheread = safeattrsetter(branchmap, b'read')
       
  2418         branchcacheread.set(lambda *args: None)
  2413     branchcachewrite = safeattrsetter(branchmap.branchcache, b'write')
  2419     branchcachewrite = safeattrsetter(branchmap.branchcache, b'write')
  2414     branchcacheread.set(lambda repo: None)
  2420     branchcachewrite.set(lambda *args: None)
  2415     branchcachewrite.set(lambda bc, repo: None)
       
  2416     try:
  2421     try:
  2417         for name in allfilters:
  2422         for name in allfilters:
  2418             printname = name
  2423             printname = name
  2419             if name is None:
  2424             if name is None:
  2420                 printname = b'unfiltered'
  2425                 printname = b'unfiltered'
  2554     else:
  2559     else:
  2555         repo = repoview.repoview(repo, filter)
  2560         repo = repoview.repoview(repo, filter)
  2556 
  2561 
  2557     repo.branchmap() # make sure we have a relevant, up to date branchmap
  2562     repo.branchmap() # make sure we have a relevant, up to date branchmap
  2558 
  2563 
       
  2564     try:
       
  2565         fromfile = branchmap.branchcache.fromfile
       
  2566     except AttributeError:
       
  2567         # older versions
       
  2568         fromfile = branchmap.read
       
  2569 
  2559     currentfilter = filter
  2570     currentfilter = filter
  2560     # try once without timer, the filter may not be cached
  2571     # try once without timer, the filter may not be cached
  2561     while branchmap.read(repo) is None:
  2572     while fromfile(repo) is None:
  2562         currentfilter = subsettable.get(currentfilter)
  2573         currentfilter = subsettable.get(currentfilter)
  2563         if currentfilter is None:
  2574         if currentfilter is None:
  2564             raise error.Abort(b'No branchmap cached for %s repo'
  2575             raise error.Abort(b'No branchmap cached for %s repo'
  2565                               % (filter or b'unfiltered'))
  2576                               % (filter or b'unfiltered'))
  2566         repo = repo.filtered(currentfilter)
  2577         repo = repo.filtered(currentfilter)
  2567     timer, fm = gettimer(ui, opts)
  2578     timer, fm = gettimer(ui, opts)
  2568     def setup():
  2579     def setup():
  2569         if clearrevlogs:
  2580         if clearrevlogs:
  2570             clearchangelog(repo)
  2581             clearchangelog(repo)
  2571     def bench():
  2582     def bench():
  2572         branchmap.read(repo)
  2583         fromfile(repo)
  2573     timer(bench, setup=setup)
  2584     timer(bench, setup=setup)
  2574     fm.end()
  2585     fm.end()
  2575 
  2586 
  2576 @command(b'perfloadmarkers')
  2587 @command(b'perfloadmarkers')
  2577 def perfloadmarkers(ui, repo):
  2588 def perfloadmarkers(ui, repo):