website/articles/jujutsu/slides.md
2025-02-19 15:39:30 +01:00

2.3 KiB
Raw Blame History

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

Worth the switch?

Not yet


References