Jujutsu 0.46.0 Adds Colocated Workspaces Backed by Git Worktrees, New jj file edit and delete Commands and Multi-Remote Push
Jujutsu 0.46.0, released October 7, can create Git worktrees alongside extra workspaces, raises the minimum Git version to 2.42.0 and lists seven breaking changes.
Overview
Jujutsu (jj), the Git-compatible version control system, shipped version 0.46.0 on October 7, 2026, according to the project changelog. The release notes on GitHub name a single highlight: “Jujutsu can now colocate workspaces besides the default one by creating Git worktrees.” The notes say jj workspace add --[no-]colocate and the git.colocate setting control the behavior.
The release also adds commands for editing files in any revision, lets jj git push target several remotes, and lists a set of breaking changes, including a higher minimum Git version.
What Changed
Colocated workspaces
Per the changelog, jj workspace add now accepts --colocate and --no-colocate flags that control whether a Git worktree is created alongside the workspace. The default colocates when the current workspace is colocated and the git.colocate config is true. The notes add that jj workspace forget removes the corresponding Git worktree when one exists.
The same document says jj git colocation status, enable and disable now work on child workspaces. According to the notes, status reports the colocation state and includes the workspace name, enable creates a Git worktree and disable removes it, so colocation can be toggled after a workspace has been created.
A new jj workspace remove command removes a workspace and its directory from disk, and the release notes state that the working-copy state is snapshotted into a commit before removal.
Editing files without touching the working copy
The release notes list two new commands: “Added commands jj file edit and jj file delete for editing files in any revision without needing to change the working copy.”
Pushing to multiple remotes
According to the changelog, jj git push now supports pushing to multiple remotes at the same time. This can be configured through git.push, set to a string pattern or an array of string patterns, or with the repeatable --remote flag, which also accepts string patterns. The default target revisions for jj git push can now be configured through revsets.git-push.
Smaller additions
The release notes also list the following:
ui.editornow supports$pathand$linesubstitution variables, with the exampleui.editor = ["emacs", "+$line", "$path"].- Aliases support
aliases.<name>.enabled = false, which disables them. The notes say this can turn off built-in aliases or aliases defined in later configuration layers, such as repository config files. jj util diff <path1> <path2>compares files on disk.
Breaking Changes
The changelog has a “Breaking changes” section with seven entries:
- The minimum supported
gitcommand version is now 2.42.0, up from 2.41.0. The notes sayjj workspace addusesgit worktree add --orphan, which was added in Git 2.42.0. - The minimum supported Rust version is now 1.97.1.
jj bisect runnow runs consistency checks before it begins bisecting. The notes describe them as helping ensure the command can tell good and bad revisions apart, and name a new--trust-endpointsflag to disable them.jj splitnow opens a single editor session to edit descriptions for the split commits.jj undoandjj redorefuse to act on an operation performed in another workspace, unless--allow-cross-workspaceis passed.jj workspace listandjj workspace rootno longer omit unreachable paths. All recorded paths are shown, with warnings displayed injj workspace root.- The
List.get(),.first()and.last()template functions now returnOption<T>instead of throwing an error on out-of-bounds access.
Fixes
The release notes list several Windows fixes. On Windows, jj no longer hangs when a subprocess needs to prompt the user, with ssh asking for a key passphrase or confirmation of an unknown host key given as examples. Also on Windows, jj git colocation enable and jj git colocation disable no longer fail with “Access is denied (os error 5)” when the Git repository contains pack files.
Other fixes in the same notes include preserving a workspace’s recorded path when jj undo reverses a jj workspace forget, and respecting .gitignore files that are excluded from the working copy by sparse patterns. Previously, according to the notes, ignored files could become tracked in a sparse working copy.
What We Don’t Know
The release notes and changelog describe behavior but do not include benchmarks or adoption figures, so the effect of colocated workspaces on large repositories is not documented in these sources. The sources also do not say when the Git version floor of 2.42.0 will reach common Linux distribution packages.
Related Coverage
The Machine Herald has previously reported on Jujutsu 0.42, which switched to the mimalloc allocator and removed a batch of deprecated commands.