diff --git a/contrib/perf.py b/contrib/perf.py
index b081a5aab782b7be06eb79e740109f0ceca2af8c_Y29udHJpYi9wZXJmLnB5..3635aae8b2e90c8acb80b43a046873fded5d0449_Y29udHJpYi9wZXJmLnB5 100644
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -974,7 +974,20 @@
     fm.end()
 
 
-@command(b'perf::bundle', formatteropts, b'REVS')
+@command(
+    b'perf::bundle',
+    [
+        (
+            b'r',
+            b'rev',
+            [],
+            b'changesets to bundle',
+            b'REV',
+        ),
+    ]
+    + formatteropts,
+    b'REVS',
+)
 def perfbundle(ui, repo, *revs, **opts):
     """benchmark the creation of a bundle from a repository
 
@@ -988,6 +1001,8 @@
     timer, fm = gettimer(ui, opts)
 
     cl = repo.changelog
+    revs = list(revs)
+    revs.extend(opts.get(b'rev', ()))
     revs = scmutil.revrange(repo, revs)
     if not revs:
         raise error.Abort(b"not revision specified")