mercurial/logcmdutil.py
changeset 42309 604c086ddde6
parent 42308 1ce46f0ee218
child 42319 b162229ebe0d
--- a/mercurial/logcmdutil.py	Tue May 14 09:13:39 2019 -0700
+++ b/mercurial/logcmdutil.py	Wed May 01 09:34:47 2019 -0700
@@ -746,7 +746,12 @@
     if opts.get('graph'):
         # User-specified revs might be unsorted, but don't sort before
         # _makerevset because it might depend on the order of revs
-        if not (revs.isdescending() or revs.istopo()):
+        if repo.ui.configbool('experimental', 'log.topo'):
+            if not revs.istopo():
+                revs = dagop.toposort(revs, repo.changelog.parentrevs)
+                # TODO: try to iterate the set lazily
+                revs = revset.baseset(list(revs))
+        elif not (revs.isdescending() or revs.istopo()):
             revs.sort(reverse=True)
     if expr:
         matcher = revset.match(None, expr)