contrib/perf.py
changeset 39318 c03c5f528e9b
parent 39194 c62184c6299c
child 39319 862d23bc5749
--- a/contrib/perf.py	Mon Aug 27 08:52:33 2018 -0700
+++ b/contrib/perf.py	Wed Aug 15 19:45:39 2018 +0000
@@ -861,7 +861,21 @@
         ctx = scmutil.revsingle(repo, rev, rev)
         t = ctx.manifestnode()
     else:
-        t = repo.manifestlog._revlog.lookup(rev)
+        from mercurial.node import bin
+
+        if len(rev) == 40:
+            t = bin(rev)
+        else:
+            try:
+                rev = int(rev)
+
+                if util.safehasattr(repo.manifestlog, 'getstorage'):
+                    t = repo.manifestlog.getstorage(b'').node(rev)
+                else:
+                    t = repo.manifestlog._revlog.lookup(rev)
+            except ValueError:
+                raise error.Abort('manifest revision must be integer or full '
+                                  'node')
     def d():
         repo.manifestlog.clearcaches(clear_persisted_data=clear_disk)
         repo.manifestlog[t].read()