add jujutsu article
This commit is contained in:
parent
c47942b451
commit
271083d71f
12 changed files with 321 additions and 3 deletions
131
articles/jujutsu/slides.md
Normal file
131
articles/jujutsu/slides.md
Normal file
|
@ -0,0 +1,131 @@
|
|||
---
|
||||
marp: false
|
||||
theme: gaia
|
||||
footer: '**Fabien Freling** - 2025-02-17'
|
||||
paginate: true
|
||||
---
|
||||
|
||||
<style>
|
||||
section::after {
|
||||
content: attr(data-marpit-pagination) '/' attr(data-marpit-pagination-total);
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<!--
|
||||
_class: lead
|
||||
-->
|
||||
|
||||
# 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
|
||||
|
||||

|
||||
<revision id> <author> <date> <branch> <commit id>
|
||||
|
||||
- @ 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
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
_class: lead
|
||||
-->
|
||||
|
||||
## Worth the switch?
|
||||
|
||||
# ✋ Not yet
|
||||
|
||||
---
|
||||
|
||||
# References
|
||||
|
||||
- [Official website](https://jj-vcs.github.io/jj/)
|
||||
- [GUI & TUI](https://github.com/jj-vcs/jj/wiki/GUI-and-TUI)
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue