Introduction
Hi there, I'm Steve. This is a tutorial for Jujutsu—a version control system.
This tutorial exists because of a particular quirk of mine: I love to write tutorials about things as I learn them. This is the backstory of TRPL, of which an ancient draft was "Rust for Rubyists." You only get to look at a problem as a beginner once, and so I think writing this stuff down is interesting. It also helps me clarify what I'm learning to myself.
Anyway, I have been interested in version control for a long time. I feel like
I am the only person alive who doesn't mind git
's CLI. That's weird. I also
heard friends rave about "stacked diffs" but struggled to understand what exactly
was going on there. Nothing I read or conversations I had have clicked.
One time I was talking with Rain about this and
she mentioned jj
being very cool. I looked at it but I didn't get it. I decided
to maybe just come back to this topic later. A very common thing people have when
learning Rust is, they'll try it, quit in frustration, and then come back months
later and it's easy and they don't know what they were struggling with. Of course,
some people never try again, and some who try don't get over the hump, but this
used to happen quite often, enough to be remarkable. So that's what I decided
with jj
. I'd figure this stuff out later.
Well, recently Chris Krycho wrote an article about jj. I liked it. I didn't fully grok everything, but it at least felt like I could understand this thing finally maybe. I didn't install it, but just sat with it for a while.
I don't know if that is why, but I awoke unusually early one morning. I
couldn't get back to sleep. Okay. Fine. Let's do this. I opened up the official
jj tutorial, installed jj
, made this repository on GitHub, followed
the "cloning a git repo" instructions to pull it down, and started this mdBook.
What follows is exactly what the title says: it's to teach me jj
. I am
publishing this just in case someone might find it interesting. I am very excited
about jj
. I feel like I'm getting it. Maybe your brain will work like mine,
and this will be useful to you. But also, it may not. I make no claim that this
tutorial is good, complete, or even accurate.
You can find the source for this content here. Feel free to open issues or even send me pull requests for typos and such. Zero guarantees I will respond in a timely fashion though.
Anyway, let's get on with it.