v0.42.0

sarperavci/CloudflareBypassForScrapingv0.42.0Jun 4, 2026by martinvonz

AI Summary

This release focuses on performance improvements via the mimalloc memory allocator and removes deprecated command and config options. It introduces features for better shell completions, multi-revision viewing, and evolution history handling.

Key Highlights

  • Switched to mimalloc memory allocator for better multi-threaded performance.
  • jj show now accepts multiple revisions, behaving closer to git show.
  • jj git fetch generates evolution history based on change IDs.
  • Editor invocation mode allows file-by-file editing (e.g., vimdiff).

Breaking Changes

  • Removed deprecated command options: jj commit --reset-author/--author, jj describe --no-edit/--edit/--reset-author/--author, jj git push --allow-new, jj metaedit --update-committer-timestamp.
  • Removed deprecated config options: git.auto-local-bookmark, git.push-new-bookmarks.

New Features

  • Shell completions now surface descriptions for custom aliases.
  • 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)