About
jj is a Git-compatible version control system that is both simple and powerful. See the installation instructions 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/--authorjj describe --no-edit/--edit/--reset-author/--authorjj git push --allow-newjj metaedit --update-committer-timestamp
-
The following deprecated config options have been removed:
git.auto-local-bookmarkgit.push-new-bookmarks
Deprecations
jj evologno longer supports legacy commit predecessors recorded injj< 0.30.
New features
-
Shell completions now surface descriptions for custom aliases, revset-aliases, template-aliases, and fileset-aliases. Descriptions are extracted from the
.docfield of the alias definition if it is a table with.docand.definitionproperties. -
jj shownow accepts multiple revisions, showing all of them one after the other, behaving closer togit show. -
jj git fetchnow 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 namecommand that prints the commit backend being used in the current repo. -
Added
edit-invocation-modeconfig 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 likevimdifffor editing.
Fixed bugs
-
jj git remote addnow reports an error instead of panicking when the remote name is empty or contains whitespace. #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
-
jj bookmark forgetno longer printsForgot N local bookmarks.when no local bookmarks were actually forgotten (e.g. when only an untracked remote bookmark matched). #9181. -
The
builtin_log_redactedtemplate 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)