perf: make perfmanifest and perfnodelookup work with revsets
They were using repo[rev], which only works with a single symbol
(e.g. "." or "my-bookmark"), not general revsets. Switch them to
scmutil.revsingle() so they can also be used with e.g. ".^".
I don't actually care about these commands, but I want to remove uses
of repo[<string>].
Differential Revision: https://phab.mercurial-scm.org/D3083
--- a/contrib/perf.py Tue Apr 03 23:47:01 2018 -0700
+++ b/contrib/perf.py Wed Apr 04 15:06:32 2018 -0700
@@ -767,7 +767,7 @@
@command('perfchangeset', formatteropts)
def perfchangeset(ui, repo, rev, **opts):
timer, fm = gettimer(ui, opts)
- n = repo[rev].node()
+ n = scmutil.revsingle(repo, rev).node()
def d():
repo.changelog.read(n)
#repo.changelog._cache = None
@@ -853,7 +853,7 @@
timer, fm = gettimer(ui, opts)
import mercurial.revlog
mercurial.revlog._prereadsize = 2**24 # disable lazy parser in old hg
- n = repo[rev].node()
+ n = scmutil.revsingle(repo, rev).node()
cl = mercurial.revlog.revlog(getsvfs(repo), "00changelog.i")
def d():
cl.rev(n)