v0.10.0
jj-vcs/jjv0.10.0Oct 5, 2023by martinvonz
AI Summary
This release introduces a default `trunk()` revset alias, adds an optional `depth` argument to the `ancestors()` function, enables the Watchman filesystem monitor by default, and improves interactive workflows with `jj split` and `jj commit`.
Key Highlights
- Default revset-alias function `trunk()` now exists.
- The `ancestors()` revset function now takes an optional `depth` argument.
- Support for the Watchman filesystem monitor is now bundled by default.
- The `jj split` command supports the `--interactive` flag.
- Templates now support an additional escape: `\0` for literal null bytes.
Breaking Changes
- A default revset-alias function `trunk()` now exists. If you previously defined your own `trunk()` alias it will continue to overwrite the built-in one.
New Features
- `jj op log` now supports `--no-graph`.
- jj now bundles a TUI tool to use as the default diff and merge editors.
- `jj commit` accepts an optional list of paths and the `--interactive` flag.
- You can now configure the set of immutable commits via `revset-aliases.immutable_heads()`.
Full Release Notes
### Breaking changes * A default revset-alias function `trunk()` now exists. If you previously defined your own `trunk()` alias it will continue to overwrite the built-in one. Check [revsets.toml](cli/src/config/revsets.toml) and [revsets.md](docs/revsets.md) to understand how the function can be adapted. ### New features * The `ancestors()` revset function now takes an optional `depth` argument to limit the depth of the ancestor set. For example, use `jj log -r 'ancestors(@, 5)` to view the last 5 commits. * Support for the Watchman filesystem monitor is now bundled by default. Set `core.fsmonitor = "watchman"` in your repo to enable. * You can now configure the set of immutable commits via `revset-aliases.immutable_heads()`. For example, set it to `"remote_branches() | tags()"` to prevent rewriting those those. Their ancestors are implicitly also immutable. * `jj op log` now supports `--no-graph`. * Templates now support an additional escape: `\0`. This will output a literal null byte. This may be useful for e.g. `jj log -T 'description ++ "\0"' --no-graph` to output descriptions only, but be able to tell where the boundaries are * jj now bundles a TUI tool to use as the default diff and merge editors. (The previous default was `meld`.) * `jj split` supports the `--interactive` flag. (This is already the default if no paths are provided.) * `jj commit` accepts an optional list of paths indicating a subset of files to include in the first commit * `jj commit` accepts the `--interactive` flag. ### Fixed bugs ### Contributors Thanks to the people who made this release happen! * Austin Seipp (@thoughtpolice) * Emily Kyle Fox (@emilykfox) * glencbz (@glencbz) * Hong Shin (@honglooker) * Ilya Grigoriev (@ilyagr) * James Sully (@sullyj3) * Martin von Zweigbergk (@martinvonz) * Philip Metzger (@PhilipMetzger) * Ruben Slabbert (@rslabbert) * Vamsi Avula (@avamsi) * Waleed Khan (@arxanas) * Willian Mori (@wmrmrx)) * Yuya Nishihara (@yuja) * Zachary Dremann (@Dr-Emann)