Why Colony Uses Jujutsu Instead of Git
Jujutsu (jj) eliminates merge conflicts between parallel AI agents. Here's how it works and why we chose it.
When multiple AI agents work on the same codebase simultaneously, Git’s branching model breaks down. Jujutsu (jj) solves this elegantly.
The Git Problem
Imagine 5 AI agents working in parallel:
- Each agent needs its own branch
- Branches diverge immediately
- Merging 5 branches creates cascading conflicts
- Agents can’t see each other’s changes until merge time
- Conflict resolution requires human intervention
This is manageable with 2 agents. With 10 or 50, it’s chaos.
How Jujutsu Fixes This
Jujutsu treats the working copy as a commit. Every change is automatically tracked, and conflicts are represented as first-class objects — not merge failures.
Key advantages for multi-agent workflows:
Automatic conflict detection
Jujutsu detects conflicts as they happen, not at merge time. Colony can alert you immediately when two agents modify the same file.
Lightweight workspaces
Each agent gets a Jujutsu workspace — not a full clone. Workspaces share the object store, so creating 50 workspaces uses negligible extra disk space.
No explicit branching
Agents don’t need to create or manage branches. They just work. Jujutsu tracks the DAG automatically.
First-class conflict resolution
When conflicts occur, Jujutsu represents both sides in the file. You can resolve conflicts at any point — they don’t block further work.
Undo everything
Every operation in Jujutsu is undoable. If an agent goes off the rails, you can revert its entire workspace without affecting others.
Git Compatibility
Jujutsu sits on top of a Git repository. Your team still pushes to GitHub/GitLab. Jujutsu handles the local workspace management while maintaining full Git compatibility.
Your repo (Git on GitHub)
└── Colony
├── Agent 1 → Jujutsu workspace
├── Agent 2 → Jujutsu workspace
└── Agent 3 → Jujutsu workspace
The Result
With Jujutsu, Colony can run unlimited parallel agents on the same codebase without merge conflicts blocking progress. Conflicts are detected early, represented cleanly, and resolved on your schedule — not as emergency merge failures.