ok/jj
1
0
Fork 0
forked from mirrors/jj
jj/lib
Yuya Nishihara 951eb0b61a revset: use filter intersection for tree containing filter
This basically transforms 's1 & (f() | s2)' to
's1.iter().filter(all && f || s2)'. Still the predicate part includes "all",
the filter function doesn't need to load commit data for every entry since
's1.iter().filter(all)' is tested first. To optimize "all" predicate out,
maybe we can add a wrapper that returns '|_: &IndexEntry| true'.

Instead of inserting AsFilter(_) node, I could add a recursive is_filter()
function. That would also work so long as the height of RevsetExpression tree
is limited. I chose node insertion just for ease of snapshot testing.
2022-12-07 11:01:59 +09:00
..
src revset: use filter intersection for tree containing filter 2022-12-07 11:01:59 +09:00
tests revset: use filter intersection for tree containing filter 2022-12-07 11:01:59 +09:00
testutils
build.rs
Cargo.toml cargo: bump pest_derive from 2.5.0 to 2.5.1 2022-12-06 08:11:18 -08:00