hgext/graphlog.py
changeset 16406 4aa4f50c52b9
parent 16405 17deb6bbfbab
child 16407 49ef1c382965
--- a/hgext/graphlog.py	Wed Apr 11 11:07:30 2012 +0200
+++ b/hgext/graphlog.py	Wed Apr 11 11:14:07 2012 +0200
@@ -409,7 +409,11 @@
         return [], None, None
     expr, filematcher = _makelogrevset(repo, pats, opts, revs)
     if expr:
-        revs = revsetmod.match(repo.ui, expr)(repo, revs)
+        # Evaluate revisions in changelog order for performance
+        # reasons but preserve the original sequence order in the
+        # filtered result.
+        matched = set(revsetmod.match(repo.ui, expr)(repo, sorted(revs)))
+        revs = [r for r in revs if r in matched]
     return revs, expr, filematcher
 
 def generate(ui, dag, displayer, showparents, edgefn, getrenamed=None,