What is jj and why should I care?
31 points by tigerlily 2 hours ago | 14 comments

dgb23 28 minutes ago
The last paragraph might be the most important one:

> There's one other reason you should be interested in giving jj a try: it has a git compatible backend, and so you can use jj on your own, without requiring anyone else you're working with to convert too. This means that there's no real downside to giving it a shot; if it's not for you, you're not giving up all of the history you wrote with it, and can go right back to git with no issues.

reply
tom_alexander 18 minutes ago
I'm giving jj a try but one aspect of it I dislike is edits to files are automatically committed, so you need to defensively create empty new commits for your changes. As in, want to browse the repo from a commit 2 weeks ago? Well if you just checkout that commit and then edit a file, you've automatically changed that commit in your repo and rebased everything after it on top of your new changes. So instead you create a new branch off of the old commit and add an empty commit to that branch so any file changes don't end up rewriting the past 2 weeks of history. git is much nicer in that I can do whatever I want to the files and it won't change the repo until _I tell it to_.
reply
smackmybishop 13 minutes ago
Just don't ever use `edit`, use `new` instead; then your changes are tracked without making a mess. I think that's much nicer than juggling stashes in git.
reply
VMG 4 minutes ago
... unless you actually want to edit a change!
reply
tucnak 24 minutes ago
16 year-old me would have been very impressed by this!
reply
auggierose 20 minutes ago
Is that a compliment, or the opposite?
reply
tucnak 29 seconds ago
A bit of both. I guess it's nice, but nothing I actually care about.
reply
jansan 19 minutes ago
We all need to give ourselves a push and finally make the next step in version control. Github, Google, Microsoft, Meta (did I forget anyone relevant? Probably) should just join forces and finally make it happen, which should not be a problem with a new system that is backend compatible to Git. Sure, Github may lose some appeal to their brand name, but hey, this is actually for making the world a better place.
reply
SOLAR_FIELDS 12 minutes ago
Every time I see a statement like this I wonder what specific features of git that people feel like are terrible enough that it’s time to completely start over. Besides “the UX is kinda shit and it’s confusing to learn”, which there are many solutions for already that don’t involve reinventing a pretty good wheel.
reply
mhh__ 2 minutes ago
Git is basically fine even though the verbs are backwards - e.g. you shouldn't need to name branches, commits should be far more automatic, but the basic mechanisms are fine.

GitHub is an abomination.

reply
seanhunter 5 minutes ago
Right.

How we got git was cvs was totally terrible[1], so Linus refused to use it. Larry McEvoy persuaded Linus to use Bitkeeper for the Linux kernel development effort. After trying Bitkeeper for a while, Linus did the thing of writing v0 of git in a weekend in a response to what he saw as the shortcomings of Bitkeeper for his workflow.[2]

But the point is there had already been vcs that saw wide adoption, serious attempts to address shortcomings in those (perforce and bitkeeper in particular) and then git was created to address specific shortcomings in those systems.

It wasn't born out of just a general "I wish there was something easier than rebase" whine or a desire to create the next thing. I haven't seen anything that comes close to being compelling in that respect.

[1] I speak as someone who maintained a CVS repo with nearly 700 active developers and >20mm lines of code. When someone made a mistake and you had to go in and edit the repo files in binary format it was genuinely terrifying.

[2] In a cave. From a box of scraps. You get the idea.

reply
ramblerman 16 minutes ago
The new solution is better. It’s so good we must get all the big players to mandate its usage.

If ur making an appeal on a forum like this u could have gone with ur favorite feature, or anything else really.

reply
7e 8 minutes ago
Is it better for AIs? That’s the only reason I would care.
reply
VMG 4 minutes ago
I've had mixed results.

Most models don't have a 100% correct CLI usage and either hallucinate or use some deprecated patterns.

However `jj undo` and the jj architecture generally make it difficult for agents to screw something up in a way that cannot be recovered.

reply