--- 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)