v0.16.0
jj-vcs/jjv0.16.0Apr 3, 2024by martinvonz
AI Summary
Consolidates `jj move` into `jj squash`, enhances templates with new keywords/functions, and adds configuration options like RGB hex support.
Key Highlights
- `jj move` deprecated in favor of `jj squash`.
- Templates gain `immutable` keyword and `coalesce()` function.
- Config supports RGB hex colors.
- `jj log` includes synthetic nodes.
Breaking Changes
- `git_head` template keyword returns optional instead of list.
- `jj sparse` flags split into subcommands.
- `jj sparse` patterns are workspace-relative.
- `jj log` no longer uses default revset with path specified.
New Features
- `jj squash` accepts `--from` and `--into`.
- `jj duplicate`/`abandon` accept multiple `-r`.
- `jj branch list` supports `-r` and `-a` combined.
- `--all` renamed to `--all-remotes`.
- `jj split` supports `--siblings`.
- `working_copies()` revset function.
- `jj git push` prints remote messages.
Full Release Notes
### Deprecations * `jj move` was deprecated in favor of `jj squash`. ### Breaking changes * The `git_head` template keyword now returns an optional value instead of a list of 0 or 1 element. * The `jj sparse set --edit`/`--reset` flags were split up into `jj sparse edit`/`reset` subcommands respectively. * The `jj sparse` subcommands now parse and print patterns as workspace-relative paths. * The `jj log` command no longer uses the default revset when a path is specified. ### New features * Config now supports rgb hex colors (in the form `#rrggbb`) wherever existing color names are supported. * `ui.default-command` now accepts multiple string arguments, for more complex default `jj` commands. * Graph node symbols are now configurable via templates * `templates.log_node` * `templates.op_log_node` * `jj log` now includes synthetic nodes in the graph where some revisions were elided. * `jj squash` now accepts `--from` and `--into` (also aliased as `--to`) if `-r` is not specified. It can now be used for all use cases where `jj move` could previously be used. The `--from` argument accepts a revset that resolves to more than one revision. * Commit templates now support `immutable` keyword. * New template function `coalesce(content, ..)` is added. * Timestamps are now shown in local timezone and without milliseconds and timezone offset by default. * `jj git push` now prints messages from the remote. * `jj branch list` now supports a `--conflicted/-c` option to show only conflicted branches. * `jj duplicate` and `jj abandon` can now take more than a single `-r` argument, for consistency with other commands. * `jj branch list` now allows combining `-r REVISIONS`/`NAMES` and `-a` options. * `--all` is now named `--all-remotes` for `jj branch list` * There is a new global `--quiet` flag to silence commands' non-primary output. * `jj split` now supports a `--siblings/-s` option that splits the target revision into siblings with the same parents and children. * new function `working_copies()` for revsets to show the working copy commits of all workspaces. ### Fixed bugs None. ### Contributors Thanks to the people who made this release happen! * Aleksey Kuznetsov (@zummenix) * Anton Älgmyr (@algmyr) * Austin Seipp (@thoughtpolice) * Benjamin Tan (@bnjmnt4n) * Chris Krycho (@chriskrycho) * Christoph Koehler (@ckoehler) * Daniel Ploch (@torquestomp) * Evan Mesterhazy (@emesterhazy) * Ilya Grigoriev (@ilyagr) * Khionu Sybiern (@khionu) * Martin von Zweigbergk (@martinvonz) * Matthew Davidson (@KingMob) * mrstanwell (@mrstanwell) * Noah Mayr (@noahmayr) * Patric Stout (@TrueBrain) * Poliorcetics (@poliorcetics) * Simon Wollwage (@Kintaro) * Steve Klabnik (@steveklabnik) * Tom Ward (@tomafro) * TrashCan (@TrashCan69420) * Yuya Nishihara (@yuja)