2.3 KiB
2.3 KiB
marp | theme | footer | paginate |
---|---|---|---|
false | gaia | **Fabien Freling** - 2025-02-17 | true |
Jujutsu
What is it?
- New version control software (VCS)
- Separation of frontend and backend
- Compatible with git
- Slowly replacing git cli at Google (askip)
- Aiming for a simpler workflow
No branch, only revisions
- @ working copy
- ◆ immutable
- × conflict
Embrace the DETACHED HEAD
- No need to be at the tip of a branch
- Easy to change the current revision (no rebase step)
- Each revision has a scope, you can switch / split / squash
- You can modify other branches, not only the current one (there is none)
Immutable revisions
- New concept
- By default
master
is immutable, sane choice - Clearly express what would create conflict, even local copy cannot change
- You can override it (but don't)
No staging area, everything is logged
- You need a good gitignore
- You can always switch commits without loss
- You might want to recreate a "staging" commit
Conflicts are ok
- Conflicts are recorded but never stop a rebase
- Conflicted commits are annotated
- You can safely rebase, deal with conflicts later on
- No need to mark as resolved
Branches, bookmarks
- Branches (git) = bookmarks (jujutsu)
- Optional during dev
- Mandatory when pushing
- Stick to revision, manual step to update
- Tracked bookmarks are updated during fetch
- No sync conflict between a local copy and its remote
Back to git?
- A way back is always possible
- git view gets confused in detached HEAD
Tooling
- Battery included
- CLI tool for splitting commits
- Git tools not compatible
Takeaway
- 🤩 Good when dealing with multiple tracks
- 😔 Need to explicitely specify branch when pushing commits
- Small improvements, not game-changing
- 😔 No ecosystem, but it's growing (TUI)
- Native backend (not ready yet) would remove a lot of friction