Jujutsu: A Git-Compatible VCS - Git Merge 2022

GitHub · 16K views · 2022 · 33:26

Open on YouTube

Testing, debugging & developer toolstalkdated

Why Hacker News recommends it

HN links it as the canonical talk on Jujutsu's design, especially conflict handling.

What it is

Martin von Zweigbergk presents Jujutsu (jj), a Git-compatible VCS with undo, anonymous branches, first-class conflicts, automatic rebasing, and the working copy as a commit. He also covers plans at Google.

Recommended by 0 HN commenters across 0 different months, 2022 to 2024.

What Hacker News said

Cites martinvonz · 2022-11 · on “Sapling: A new source control system with Git-compatible client”

I think those two things that arxanas mentioned are the biggest differences (i.e. working-copy-as-commit and conflicts in commits). I haven't used Sapling, but I suspect Jujutsu has better support for moving commits (and parts of commits) around without touching the working copy. Sapling, on the other hand, has much better support very large repositories, since they've spent a lot of time on that over the years. We're going to copy some of Sapling's solutions to Jujutsu soon, since we're working on integrating it with Google's monorepo (slides: [LINK] , recording: [this video] ).

Cites teleforce · 2023-08 · on “Jujutsu: A Git-compatible DVCS that is both simple and powerful”

Jujutsu started as author's personal project and now author's full-time project at Google. It's presented at Git Merge 2022: Jujutsu: A Git-Compatible VCS - Git Merge 2022: Video: [this video] Slides: [LINK]

Cites aseipp · 2023-11 · on “I (kind of) killed Mercurial at Mozilla”

I completely rewrote the README recently to be more "user friendly"; does it address some of your question? I'm not trying to be snarky, I'm genuinely interested in if the README is now tantalizing enough to make you interested: [LINK] But in short, it has a better UX than Git by a mile while remaining interoperable at the storage level, so you can use GitHub; it has many of the niceties of Mercurial's UX like revsets, no staging area, and a templating language for log output. Conflict resolution and rebasing is clean, easy, and nearly automatic. It has features neither support, like a real undo command and "operation log"[1]. The UX is smaller and conceptually cleaner; fewer "verbs" that op

Cites snthpy · 2024-07 · on “Jujutsu: A Next Generation Replacement for Git”

I think this was the talk: [this video] I would like to know more about the first class conflict handling. That could potentially be useful for an application I have in mind but I need to understand the algorithms better. How does it compare to CRDTs or other merge strategies?