| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| jj-v0.35.0-x86_64-pc-windows-msvc.zip | 2025-11-06 | 8.5 MB | |
| jj-v0.35.0-aarch64-pc-windows-msvc.zip | 2025-11-06 | 8.0 MB | |
| jj-v0.35.0-x86_64-apple-darwin.tar.gz | 2025-11-06 | 9.4 MB | |
| jj-v0.35.0-x86_64-unknown-linux-musl.tar.gz | 2025-11-06 | 9.7 MB | |
| jj-v0.35.0-aarch64-apple-darwin.tar.gz | 2025-11-06 | 8.9 MB | |
| jj-v0.35.0-aarch64-unknown-linux-musl.tar.gz | 2025-11-06 | 9.0 MB | |
| jj-v0.35.0-docs-html.tar.gz | 2025-11-06 | 1.7 MB | |
| README.md | 2025-11-06 | 6.0 kB | |
| v0.35.0 source code.tar.gz | 2025-11-06 | 2.2 MB | |
| v0.35.0 source code.zip | 2025-11-06 | 2.5 MB | |
| Totals: 10 Items | 59.9 MB | 0 | |
About
jj is a Git-compatible version control system that is both simple and powerful. See the installation instructions to get started.
Release highlights
-
Workspaces can now have their own separate configuration. For instance, you can use
jj config set --workspaceto update a configuration option only in the current workspace. -
After creating a local bookmark, it is now possible to use
jj bookmark trackto associate the bookmark with a specific remote before pushing it. When pushing a tracked bookmark, it is not necessary to use--allow-new. -
The new
jj git colocation enableandjj git colocation disablecommands allow converting between colocated and non-colocated workspaces.
Breaking changes
-
The
remote_bookmarks(remote=pattern)revset now includes Git-tracking bookmarks if the specifiedpatternmatchesgit. The default isremote=~exact:"git"as before. -
The deprecated flag
--summaryofjj abandonhas been removed. -
The deprecated command
jj backouthas been removed, usejj revertinstead. -
The following deprecated config options have been removed:
signing.sign-allcore.watchman.register_snapshot_triggerdiff.format
Deprecations
-
jj bisect run --command <cmd>is deprecated in favor ofjj bisect run -- <cmd>. -
jj metaedit --update-committer-timestampwas renamed tojj metaedit --force-rewritesince the old name (and help text) incorrectly suggested that the committer name and email would not be updated.
New features
-
Workspaces may have an additional layered configuration, located at
.jj/workspace-config.toml.jj configsubcommands which took layer options like--reponow also support--workspace. -
jj bookmark trackcan now associate new local bookmarks with remote. Tracked bookmarks can be pushed without--allow-new. #7072 -
The new
jj git colocationcommand provides sub-commands to show the colocation state (status), to convert a non-colocated workspace into a colocated workspace (enable), and vice-versa (disable). -
New
jj tag set/deletecommands to create/update/delete tags locally. Created/updated tags are currently always exported to Git as lightweight tags. If you would prefer them to be exported as annotated tags, please give us feedback on #7908. -
Templates now support a
.split(separator, [limit])method on strings to split a string into a list of substrings. -
-Gis now available as a short form of--no-graphinjj log,jj evolog,jj op log,jj op showandjj op diff. -
jj metaeditnow accepts-m/--messageoption to non-interactively update the change description. -
The
CryptographicSignature.key()template method now also works for SSH signatures and returns the corresponding public key fingerprint. -
Added
template-aliases.empty_commit_marker. Users can override this value in their config to change the "(empty)" label on empty commits. -
Add support for
--when.workspacesconfig scopes. -
Add support for
--when.hostnamesconfig scopes. This allows configuration to be conditionally applied based on the hostname set inoperation.hostname. -
jj bisect runaccepts the command and arguments to pass to the command directly as positional arguments, such asjj bisect --range=..main -- cargo check --all-targets. -
Divergent changes are no longer marked red in immutable revisions. Since the revision is immutable, the user shouldn't take any action, so the red color was unnecessarily alarming.
-
New commit template keywords
local/remote_tagsto show only local/remote tags. These keywords may be useful in non-colocated Git repositories where local and exported@gittags can point to different revisions. -
jj git clonenow supports the--branchoption to specify the branch(es) to fetch during clone. If present, the first matching branch is used as the working-copy parent. -
Revsets now support logical operators in string patterns.
Fixed bugs
-
jj metaedit --author-timestamptwice with the same value no longer edits the change twice in some cases. -
jj squash: fixed improper revision rebase when both--insert-afterand--insert-beforewere used. -
jj undocan now revert "fetch"/"import" operation that involves tag updates. #6325 -
Fixed parsing of
files(expr)revset expression including parentheses. #7747 -
Fixed
jj describe --stdinto append a final newline character.
Contributors
Thanks to the people who made this release happen!
- Alpha Chen (@kejadlen)
- Angel Ezquerra (@AngelEzquerra)
- ase (@adamse)
- Austin Seipp (@thoughtpolice)
- Benjamin Brittain (@benbrittain)
- bipul (@bipulmgr)
- Brian Schroeder (@bts)
- Bryce Berger (@bryceberger)
- Cole Helbling (@cole-h)
- Daniel Luz (@mernen)
- David Higgs (@higgsd)
- Defelo (@Defelo)
- Fedor (@sheremetyev)
- Gabriel Goller (@kaffarell)
- Gaëtan Lehmann (@glehmann)
- George Christou (@gechr)
- Ilya Grigoriev (@ilyagr)
- Isaac Corbrey (@icorbrey)
- James Coman (@jamescoman)
- Joseph Lou (@josephlou5)
- Lander Brandt (@landaire)
- Martin von Zweigbergk (@martinvonz)
- Michael Chirico (@MichaelChirico)
- Owen Brooks (@owenbrooks)
- Peter Schilling (@schpet)
- Philip Metzger (@PhilipMetzger)
- Remo Senekowitsch (@senekor)
- Ross Smyth (@RossSmyth)
- Scott Taylor (@scott2000)
- Steve Fink (@hotsphink)
- Steve Klabnik (@steveklabnik)
- Theo Buehler (@botovq)
- Theodore Dubois (@tbodt)
- Theodore Keloglou (@sirodoht)
- Yuya Nishihara (@yuja)