v0.42.0
NVlabs/VILAv0.42.0Jun 4, 2026by martinvonz
AI Summary
This update focuses on performance improvements by switching to the mimalloc memory allocator for better multi-threaded performance. It also enhances the `jj show` command to accept multiple revisions and removes several deprecated command and configuration options.
Key Highlights
- Switched to the mimalloc memory allocator for better multi-threaded performance.
- `jj show` now accepts multiple revisions, behaving closer to `git show`.
- `jj git fetch` now generates evolution history based on change IDs.
- Added a new `jj util backend name` command to print the commit backend.
Breaking Changes
- The deprecated command options `jj commit --reset-author`/`--author`, `jj describe --no-edit`/`--edit`/`--reset-author`/`--author`, `jj git push --allow-new`, and `jj metaedit --update-committer-timestamp` have been removed.
- The deprecated config options `git.auto-local-bookmark` and `git.push-new-bookmarks` have been removed.
New Features
- Shell completions now surface descriptions for custom aliases, revset-aliases, and template-aliases.
- `jj show` accepts multiple revisions.
- `jj git fetch` generates evolution history based on change IDs.
- Added `jj util backend name` command.
- Added `edit-invocation-mode` config option for diff editors.
Full Release Notes
### About jj is a Git-compatible version control system that is both simple and powerful. See the [installation instructions](https://jj-vcs.github.io/jj/v0.42.0/install-and-setup/) to get started. ### Release highlights * Switched to the mimalloc memory allocator for better multi-threaded performance. ### Breaking changes * The following deprecated command options have been removed: - `jj commit --reset-author`/`--author` - `jj describe --no-edit`/`--edit`/`--reset-author`/`--author` - `jj git push --allow-new` - `jj metaedit --update-committer-timestamp` * The following deprecated config options have been removed: - `git.auto-local-bookmark` - `git.push-new-bookmarks` ### Deprecations * `jj evolog` no longer supports legacy commit predecessors recorded in `jj` < 0.30. ### New features * Shell completions now surface descriptions for custom aliases, revset-aliases, template-aliases, and fileset-aliases. Descriptions are extracted from the `.doc` field of the alias definition if it is a table with `.doc` and `.definition` properties. * `jj show` now accepts multiple revisions, showing all of them one after the other, behaving closer to `git show`. * `jj git fetch` now generates evolution history based on change IDs. If change IDs are preserved by the remote, local descendant revisions will be rebased onto the rewritten parents. * Added `jj util backend name` command that prints the commit backend being used in the current repo. * Added `edit-invocation-mode` config option for diff editors (e.g. `jj diffedit`, `jj split`). When set to `"file-by-file"`, the editor is launched once per changed file, making it possible to use per-file tools like `vimdiff` for editing. ### Fixed bugs * `jj git remote add` now reports an error instead of panicking when the remote name is empty or contains whitespace. [#9099](https://github.com/jj-vcs/jj/issues/9099) * Color-words diffs are now shown as separate before and after lines when color output is disabled, making piped or redirected diffs readable. [#5894](https://github.com/jj-vcs/jj/issues/5894) * `jj bookmark forget` no longer prints `Forgot N local bookmarks.` when no local bookmarks were actually forgotten (e.g. when only an untracked remote bookmark matched). [#9181](https://github.com/jj-vcs/jj/issues/9181). * The `builtin_log_redacted` template now also redacts workspace names. ### Contributors Thanks to the people who made this release happen! * Alex Jaspersen (@ajaspers) * Archer (@archer-321) * ase (@adamse) * Austin Seipp (@thoughtpolice) * David Rieber (@drieber) * Eyüp Can Akman (@eyupcanakman) * Jakub Stasiak (@jstasiak) * James Dixon (@lemonase) * Joseph Lou (@josephlou5) * Laurynas Keturakis (@laulauland) * Luna Schwalbe (@lunagl) * Martin von Zweigbergk (@martinvonz) * Niko Savola (@nikosavola) * OlshaMB (@OlshaMB) * Sergey Kasmy (@SergeyKasmy) * truffle (@truffle-dev) * Vincent Ging Ho Yim (@cenviity) * Yuya Nishihara (@yuja)