Add the revsets mutable and immutable.

I add them as aliases, since a user may instead choose to define `immutable_heads()`, for example, as `heads(immutable())`, and the define `immutable()` instead.
This commit is contained in:
Matt Stark 2024-05-17 09:34:43 +10:00 committed by Matt
parent 77cf968316
commit fa6f5e3880
3 changed files with 14 additions and 0 deletions

View file

@ -40,6 +40,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
Note, these are cross compiled and currently untested. Note, these are cross compiled and currently untested.
We plan on providing fully tested builds later once our CI system allows it. We plan on providing fully tested builds later once our CI system allows it.
* Added new revsets `mutable()` and `immutable()`.
### Fixed bugs ### Fixed bugs
* When the working copy commit becomes immutable, a new one is automatically created on top of it * When the working copy commit becomes immutable, a new one is automatically created on top of it

View file

@ -18,3 +18,5 @@ latest(
''' '''
'immutable_heads()' = 'trunk() | tags()' 'immutable_heads()' = 'trunk() | tags()'
'immutable()' = '::(immutable_heads() | root())'
'mutable()' = '~immutable()'

View file

@ -223,6 +223,16 @@ for a comprehensive list.
* `immutable_heads()`: Resolves to `trunk() | tags()` by default. See * `immutable_heads()`: Resolves to `trunk() | tags()` by default. See
[here](config.md#set-of-immutable-commits) for details. [here](config.md#set-of-immutable-commits) for details.
* `immutable()`: The set of commits that `jj` treats as immutable. This is
equivalent to `::(immutable_heads() | root())`. Note that modifying this will
*not* change whether a commit is immutable. To do that, edit
`immutable_heads()`.
* `mutable()`: The set of commits that `jj` treats as mutable. This is
equivalent to `~immutable()`. Note that modifying this will
*not* change whether a commit is immutable. To do that, edit
`immutable_heads()`.
## The `all:` modifier ## The `all:` modifier