







A merge workflow for activating multiple branches simultaneously using Jujutsu, an alternative VCS to Git.
Jujutsu For Busy Devs | maddie, wtf?!
Jujutsu (jj) is a version control system with a significantly simplified mental model and command-line interface compared to Git, without sacrificing expressibility or power (in fact, you could argue Jujutsu is more powerful). Stacked-diff workflows, seamless rebases, and ephemeral revisions are all natural with jj, and it uses Git as a backend, which means you can begin using it non-destructively with a single command and can always drop back down to Git if you need to.
Introduction - Steve's Jujutsu Tutorial
Hi there, I'm Steve. This is a tutorial for Jujutsu—a version control system.
Evan's Jujutsu Tutorial
Jujutsu (from here on, "jj") is a version control system that is both simple and powerful. This site is a tutorial will help you learn to use jj.
Check Sim Software
Jjewel A native Mac client for the Jujutsu version control system Download Jjewel Have a Question? Current version: 0.6.4 Jjewel provides a GUI for the Jujutsu version control system. Use Jjewel to perform the most common version control tasks and spend less time entering Terminal commands.

The Sales Pitch — Evan's Jujutsu Tutorial
Is it really worth your time to learn a new version control system? I think the answer is yes. Certainly it was for me and many other fans of this tool! I adopt new tools rarely and evangelize them even less often, but jj has been my favorite of the last few years.
Git at any scale · Cursor
Hosting Git repositories at scale is a nightmare. When Linus Torvalds designed the first version of the information manager from hell (that's actually the tagline for Git, look it up), he had a very specific use case in mind: his own. He wanted to replace BitKeeper, the distributed version control system that was being used to develop the Linux Kernel. Of course, the replacement had to be distributed too. The Kernel is an unusual software project; it is extremely decentralized, with many different maintainers for its many different subsystems. A distributed version control system is a natural fit for this workflow.

High Performance Git
High Performance Git by Ted Nyman, a book about Git internals and large Git repositories.
Git: The complete guide to sign your commits with an SSH key
Please read the introduction I wrote about why signing your git commits ...

15+ years later, Microsoft morged my diagram
How Microsoft continvoucly morged my Git branching diagram.


proposal: ingest repo records #282
`sh.tangled.repo` records are one of the last few records that need atprotation (2-way sync between appview/pds). this one is tricky because we want consistency between knot state, appview state and PDS state. the path forward is described below: - migration to did/rkey syntax universally: in several places, we utilize `did/repo-name` as a globally unique identifier for a repository, we should migrate this to `did/rkey`: * for the tangled appview: this means reworking our ACLs, routers and DB to use `did/rkey` or ATURI as a globally unique identifier for a repo * for knots: this means changing paths on disk to be `did/rkey`, allowing git ops to `host:did/rkey` , updating ACLs, and XRPC endpoints * for spindles: this means updating ACLs and XRPC endpoints - once this is done, we can define ingestion logic for all services in the network to pull sh.tangled.repo records * for the tangled appview, this should create/delete/update a repo pointer record * for knots: this should create-or-ignore/delete-or-ignore/update-or-ignore a repo on disk. migration of repos needs to be thought out here. * for spindles: as above - define edge-case behaviors: * when referring to repos by rkey, it is possible for clever users to create duplicate records with the same repo-name, appview routers must handle this ambiguity with a new interstitial page that offers a redirect, knots must return an error upon push/pull on ambiguous git URLs * the `knot` cli can introduce a command `backfill` or `sync` to bring knot state up to sync with the rest of the world (repos, collaborators, pubkeys, ACLs etc.).
Introducing jjq, a local merge queue for jj
jjq is a CLI tool that lets you, or more likely, a coding agent, submit a change to be considered for landing on the trunk of a jj repository. Think of it like a local version of a merge queue from a hosted forge. jjq will automatically test to see if...
