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 like
vimdifffor 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)