quark added a comment.
In https://phab.mercurial-scm.org/D451#7456, @yuja wrote: > Perhaps `_flipand(1:0, _flipand(1:0, 0::1))` would return `[1, 0]` if the input set > were reversed. IMHO, that's correct under the original design. I see. The old code allows "weak define" that "define" becomes "follow". There is no way to tell if a revset is "strong define" or "weak define" from the help text. So it could be confusing sometimes. list(revset.match(None, '_flipand(1:0, _flipand(1:0, 0::1))', order=ORDER)(repo, revset.baseset(INITSET))) | OLD CODE | ORDER=define | ORDER=follow | | INITSET=[0,1] | [0,1] | [0,1] | | INITSET=[1,0] | [1,0] | [1,0] | | | NEW CODE | ORDER=define | ORDER=follow | | INITSET=[0,1] | [0,1] | [0,1] | | INITSET=[1,0] | [0,1] | [1,0] | | Since `set.sort()` is lazy and optimized to a no-op. I think it's cleaner to migrate everything to "strong define" (for core revsets). Third party code needs change to follow that. If they do not need `subrepo` (ex. remotenames case), the new API could be easier to use. ---- Unrelated to this series, I also think some revsets might want a non-ascending "define" order. For example, it seems more natural if `p1(A+B)` could be equivalent to `p1(A)+p1(B)`. Same applies to `p2`, `parents`, `children` and maybe `roots`, `heads`. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D451 To: quark, #hg-reviewers Cc: yuja, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel