ok/jj
1
0
Fork 0
forked from mirrors/jj
jj/lib
Martin von Zweigbergk 0d62a336af revsets: initial support for Mercurial-style revsets
This patch adds initial support for a DSL for specifying revisions
inspired by Mercurial's "revset" language. The initial support
includes prefix operators ":" (parents) and "*:" (ancestors) with
naive parsing of the revsets. Mercurial uses postfix operator "^" for
parent 1 just like Git does. It uses prefix operator "::" for
ancestors and the same operator as postfix operator for descendants. I
did it differently because I like the idea of using the same operator
as prefix/postfix depending on desired direction, so I wanted to apply
that to parents/children as well (and for
predecessors/successors). The "*" in the "*:" operator is copied from
regular expression syntax. Let's see how it works out. This is an
experimental VCS, after all.

I've updated the CLI to use the new revset support.

The implementation feels a little messy, but you have to start
somewhere...
2021-04-18 21:25:51 -07:00
..
benches diff: first diff lines, then refine to words, producing better diffs 2021-04-04 21:50:31 -07:00
protos view: add tracking of "public" heads (copying Mercurial's phase concept) 2021-01-16 11:48:35 -08:00
src revsets: initial support for Mercurial-style revsets 2021-04-18 21:25:51 -07:00
tests revsets: initial support for Mercurial-style revsets 2021-04-18 21:25:51 -07:00
build.rs rustfmt: configure to group imports 2021-03-14 10:46:25 -07:00
Cargo.toml diff: use new diff algorithm for content diff 2021-03-31 22:22:59 -07:00