Conversation
… set Tests fail when running with `init.defaultBranch` set to something like "trunk". Set the value explicitly when initializing a test repository, to isolate tests from global git config.
Create an abstraction around the VCS backend. For now, only Git is supported, but this is in place to add support for a Jujutsu backend as well.
Jujutsu repositories should create a jj workspace instead of a git worktree.
|
@jennings love the initiative! Just a couple of questions:
|
To be honest, I haven't thought that much about it yet. I don't really ask the agent to commit things very often. I know this is a common workflow, though, and people have had success putting instructions in their AGENTS.md to use jj instead of git. Perhaps it should be a config setting
If you really mean pushing, then I think it has the exact same problems as pushing from a git worktree. Remotes can't tell if git or jj are pushing to them (other than the fact that the commits they're receiving usually have an extra However, I think you may mean just "updating the (local) repo with changes", similar to |
nice! the flag you mention seems like a must, we can't have a mix of
sorry didn't explain myself very well, to my understanding if you're using workspaces in a co-located repo, while having multiple agents making changes then jj is forced to sync w the underlying git repo on every change, thus creating potential lock contention in the git store does that make more sense? |
You can use worktrees and workspaces in the same repo. I am doing it today with Agent Deck and other similar tools. What I think you're referring to is that only the default workspace (the first one you get when you This isn't a fundamental limitation, I expect this feature to be added sometime. Several people have started work to make workspaces also contain git worktrees, but it seems it's more work than you'd expect.
I think you might be worried that every change to any file might trigger a snapshot (amend the working copy commit). There is no daemon watching files on disk get changed, by default. Instead, each time you run any jj command, the first thing jj does is the equivalent of There is an optional integration with watchman to automatically snapshot when files are edited, but it's not on by default.
I think this is the same problem you'd have using git over NFS, no? The jj storage should be safe over NFS, the warning is referring to git not being fully safe to use concurrently. |
Adds support for Jujutsu repositories. Jujutsu (jj) is a git-compatible version control system. It has the concept of "workspaces" which are analogous to git worktrees.
Jujutsu repositories can be colocated with git repositories (the
.jjdirectory is a sibiling of the.gitdirectory it uses as its backing storage), so a directory may be both a Git repository and a jj repository. If so, prefer the jj repository.vcs.Backendinterface that is implemented by bothgit.GitBackendandjujutsu.JJBackend.jj workspaceif in a jj repository.