Isaac Corbrey

Notes from JJ Con 2026

Don't expect a lot from these, I ran out of energy halfway through and tbh they're mostly for me anyway lol

Josh Steadmon: The Git and JJ Object Models

  • Git's reflog exists because refs are mutable and not content addressed, so there needs to be something that keeps track of their changes
  • In JJ commits explicitly point at their predecessor(s) to sidestep having to do reflog archaeology
  • JJ commits can point to multiple root trees instead of just one (used for representing conflicts as a first-class concept)

    • Conflict markers are not stored anywhere in JJ's data, it instead materializes them when populating the worktree on disk from the commit's root trees

      • Conflict algebra fucks
  • Views represent refs, head commits, Git metadata, and worktree commits at a given point in time in an immutable, content-addressed way
  • Operations link views over time

Nick Gerace: How to Accidentally Create a Graph-Based VCS

  • DAGs are DAGs and DAGs are Hard
  • Oh no not stored procedures
  • This reminds me of perpetual patches like in my Helix megafork, would be cool if that was a first-class feature but maybe doesn't need to be more than a technique

    • How do we represent evergreen patches in Jujutsu?
  • DAGs are DAGs and DAGs are Hard
  • Note to self: look into monotonic clocks and vector clocks
  • DAGs are DAGs and DAGs are Hard
  • Causal garbage collection is hard
  • DAGs are DAGs and DAGs are Hard
  • Ends make the means w/ operational transforms, basically compute the necessary diff to get to the end result
  • DAGs are DAGs and DAGs are Hard
  • Copy on write can be more expensive than is worth it in some situations
  • Immutability is safety, treat mutability like unsafe
  • DAGs are DAGs and DAGs are Hard
  • Welcome back locking
  • DAGs are DAGs and DAGs are Hard
  • Split graphs to make it easier?
  • Welcome back materialized views
  • "JJ stores history, not data" strikes again
  • DAGs are DAGs and DAGs are Hard
  • CRDTs strike again
  • Log replication?
  • We keep trying to abuse Jujutsu to represent non-VCS domains, but it never quite works because it's a mismatch between data and delta. How do we resolve this?

Pandelis Zembashis: Exploring a Jujutsu without Git

  • What does a forge built only for JJ look like?

    • Related to my thoughts on what code review looks like in a Jujutsu world
  • Git makes rebasing and multi-author stacks difficult
  • Jujutsu is not prescriptive about how a backend is implemented as long as it follows the spec, which is just an interface layer
  • This feels more similar to my work on Mnemosyne than I anticipated, but without the Git indirection
  • Jujutsu backends as WASM? Why compile in a backend when you could decouple it?

Laurynas Keturakis: Change IDs All the Way Down

  • The abstractions that seem to survive today are those that both we humans and agents can utilize without friction
  • See: https://isaaccorbrey.com/ramblings/how-accessible-to-llms-is-jujutsu
  • Making code review for self better makes review for others better
  • Check out jj-hunk for better non-interactive splitting
  • hunkset => revset for diffs

    • My idea of property testing for revsets feels relevant here

I like building tools, breaking workflows, and putting them back together better. If you enjoy my work and want to support it, you can buy me a coffee ☕ or support me on Liberapay 💛.