diff -r 61ab546b71c3 -r 73731fa8d1bd mercurial/filesetlang.py --- a/mercurial/filesetlang.py Sat Aug 04 17:08:33 2018 +0900 +++ b/mercurial/filesetlang.py Sat Jul 21 17:13:34 2018 +0900 @@ -207,6 +207,8 @@ return wb, _optimizeandops(op, tb, ta) if op == 'or': ws, ts = zip(*(_optimize(y) for y in x[1:])) + ts = tuple(it[1] for it in sorted(enumerate(ts), + key=lambda it: ws[it[0]])) return max(ws), (op,) + ts if op == 'list': ws, ts = zip(*(_optimize(y) for y in x[1:]))