896 def filematcher(ctx): |
896 def filematcher(ctx): |
897 return match |
897 return match |
898 |
898 |
899 expr = _makerevset(repo, match, pats, slowpath, opts) |
899 expr = _makerevset(repo, match, pats, slowpath, opts) |
900 if opts.get(b'graph'): |
900 if opts.get(b'graph'): |
901 # User-specified revs might be unsorted, but don't sort before |
|
902 # _makerevset because it might depend on the order of revs |
|
903 if repo.ui.configbool(b'experimental', b'log.topo'): |
901 if repo.ui.configbool(b'experimental', b'log.topo'): |
904 if not revs.istopo(): |
902 if not revs.istopo(): |
905 revs = dagop.toposort(revs, repo.changelog.parentrevs) |
903 revs = dagop.toposort(revs, repo.changelog.parentrevs) |
906 # TODO: try to iterate the set lazily |
904 # TODO: try to iterate the set lazily |
907 revs = revset.baseset(list(revs), istopo=True) |
905 revs = revset.baseset(list(revs), istopo=True) |
908 elif not (revs.isdescending() or revs.istopo()): |
906 elif not (revs.isdescending() or revs.istopo()): |
|
907 # User-specified revs might be unsorted |
909 revs.sort(reverse=True) |
908 revs.sort(reverse=True) |
910 if expr: |
909 if expr: |
911 matcher = revset.match(None, expr) |
910 matcher = revset.match(None, expr) |
912 revs = matcher(repo, revs) |
911 revs = matcher(repo, revs) |
913 if limit is not None: |
912 if limit is not None: |