This is an archive of the discontinued Mercurial Phabricator instance.

revset: drop optimization about reordering "or" set elements
ClosedPublic

Authored by quark on Aug 29 2017, 10:02 AM.

Details

Summary

The reordering optimization is more important for "and" than "or", given the
implementation details about "addset" and "filteredset" - reordering "or"
may help "contains" test but not iteration, reordering "and" could help
both. We are going to simplify the tree to remove ordering information.
Removing "or" reordering optimization would make things simpler.

This effectively reverts c63cb2d10d6d. It tracks back to the "orset"
function added by the initial commit of revset (c9ce8ecd6).

In the future, we might consider optimization at runtime (ex. do reordering
and rewrites inside "orset").

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

quark created this revision.Aug 29 2017, 10:02 AM
quark edited the summary of this revision. (Show Details)Aug 29 2017, 10:13 AM
This revision was automatically updated to reflect the committed changes.