Ce qui se passe
Jujutsu (jj), le gestionnaire de versions compatible Git, sort en 0.46.0.
Le changement central touche les workspaces, l'équivalent jj des worktrees.
Jusqu'ici, seul le workspace par défaut pouvait être colocalisé, c'est-à-dire
doublé d'un .git que Git, l'éditeur et les hooks savent lire. Les workspaces
supplémentaires restaient invisibles pour tout l'outillage Git.
Ce que ça change
jj workspace add crée désormais un worktree Git à côté du workspace. Par
défaut, il colocalise si le workspace courant l'est et si le réglage
git.colocate vaut true ; deux options tranchent explicitement :
jj workspace add --colocate ../agent-a
jj workspace add --no-colocate ../brouillon
jj git colocation statusjj git colocation status,enableetdisablefonctionnent dans les workspaces enfants : la colocalisation s'ajoute ou se retire après coup.jj workspace forgetsupprime aussi le worktree Git correspondant.jj workspace remove, nouvelle commande, efface le workspace et son dossier, après avoir enregistré la copie de travail dans un commit.
Pour faire travailler plusieurs agents de code sur un même dépôt, cela donne un workspace par agent, que Git voit comme un worktree ordinaire.
Les ruptures
- Git 2.42.0 minimum, contre 2.41.0, parce que
jj workspace addappellegit worktree add --orphan. - Rust 1.97.1 minimum pour compiler.
jj undoetjj redorefusent une opération faite dans un autre workspace, sauf avec--allow-cross-workspace.jj bisect runcontrôle d'abord que les bornes se distinguent et que la copie de travail passe bien de mauvais à bon ;--trust-endpointssaute ce contrôle.jj splitouvre un seul éditeur pour décrire tous les commits issus du découpage.jj workspace listetrootmontrent tous les chemins enregistrés, même inaccessibles.- Dans les templates,
List.get(),.first()et.last()renvoientOption<T>au lieu d'échouer hors limites.
Le reste
jj git pushvers plusieurs remotes d'un coup, viagit.pushou--remoterépété, motifs acceptés ; cibles par défaut dansrevsets.git-push.jj file editetjj file deletemodifient un fichier dans n'importe quelle révision, sans toucher la copie de travail.ui.editoraccepte$pathet$line.- Sous Windows, jj ne reste plus bloqué quand
sshdemande une phrase de passe. - Un
.gitignoreexclu par les motifs sparse est quand même respecté ; un.gitignoreen lien symbolique est ignoré, comme le fait Git.
Source : jj v0.46.0, notes de version, GitHub, octobre 2026.