Comments
Patch
@@ -458,29 +458,33 @@ def perfrevlog(ui, repo, file_, **opts):
r = revlog.revlog(lambda fn: open(fn, 'rb'), file_)
for x in xrange(0, len(r), dist):
r.revision(r.node(x))
timer(d)
fm.end()
@command('perfrevset',
- [('C', 'clear', False, 'clear volatile cache between each call.')]
+ [('C', 'clear', False, 'clear volatile cache between each call.'),
+ ('x', 'contexts', False, 'obtain changectx for each revision')]
+ formatteropts, "REVSET")
-def perfrevset(ui, repo, expr, clear=False, **opts):
+def perfrevset(ui, repo, expr, clear=False, contexts=False, **opts):
"""benchmark the execution time of a revset
Use the --clean option if need to evaluate the impact of build volatile
revisions set cache on the revset execution. Volatile cache hold filtered
and obsolete related cache."""
timer, fm = gettimer(ui, opts)
def d():
if clear:
repo.invalidatevolatilesets()
- for r in repo.revs(expr): pass
+ if contexts:
+ for ctx in repo.set(expr): pass
+ else:
+ for r in repo.revs(expr): pass
timer(d)
fm.end()
@command('perfvolatilesets', formatteropts)
def perfvolatilesets(ui, repo, *names, **opts):
"""benchmark the computation of various volatile set
Volatile set computes element related to filtering and obsolescence."""