Mercurial > hg
changeset 25307:4d1e56b29a91
revset: comment that we can't swap 'or' operands by weight
Though the original code did nothing, it tried to optimize the calculation
order by weight. But we can't simply swap 'ta' and 'tb' because it would
change the order of revisions.
For future reference, this patch keeps the modified version of the original
code as comment.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sun, 26 Apr 2015 18:27:32 +0900 |
parents | c87b05925054 |
children | 036c26b08b71 |
files | mercurial/revset.py |
diffstat | 1 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revset.py Sun Apr 26 18:05:23 2015 +0900 +++ b/mercurial/revset.py Sun Apr 26 18:27:32 2015 +0900 @@ -2162,8 +2162,10 @@ elif op == 'or': wa, ta = optimize(x[1], False) wb, tb = optimize(x[2], False) - if wb < wa: - wb, wa = wa, wb + # we can't reorder trees by weight because it would change the order. + # ("sort(a + b)" == "sort(b + a)", but "a + b" != "b + a") + # if wb < wa: + # tb, ta = ta, tb return max(wa, wb), (op, ta, tb) elif op == 'not': # Optimize not public() to _notpublic() because we have a fast version