Jujutsu compared
Jujutsu (jj) can share storage and a working
copy with Git in a colocated repository. A splice is ordinary files plus
.splice, so jj sees app and library changes together. Submodule contents
are not managed by jj, and there is no released folder-sync command
(Git compatibility).
This makes jj relevant as a tool to use alongside git-splice. It does
not provide an alternative way to sync a folder with another repository.
git-splice stops at the detached HEAD
jj has bookmarks, but no currently selected branch. Its commands usually
leave Git's HEAD detached, while git-splice uses the current Git branch
to choose the upstream branch. Sharing .git/ does not resolve that mismatch.
After jj commit, move the intended bookmark to the committed change
(@-), select it with Git, and sync:
jj bookmark set main -r @-
git checkout main
git splice push vendor/lib
Use the branch you intend to publish, here main. A later jj new or
jj commit can detach Git's HEAD again, so selecting a branch is a
workaround for each sync, not native jj integration.
The checked scenario
shows both the submodule/splice difference and the branch workaround with
the jj version pinned in flake.nix.
Future integration needs to decide which bookmark and commit git-splice
should use. That discussion and upstream proposals are under
Going forward.