logoalt Hacker News

Meleagristoday at 4:01 AM12 repliesview on HN

I recently switched to Jujutsu (jj) and it made me realize that “what comes after Git” might already exist.

It turns out the snapshot model is a perfect fit for AI-assisted development. I can iterate freely without thinking about commits or worrying about saving known-good versions.

You can just mess around and make it presentable later, which Git never really let you do nicely.

Plus there’s essentially zero learning curve, since all the models know how to use JJ really well.


Replies

jlokiertoday at 3:44 PM

> You can just mess around and make it presentable later, which Git never really let you do nicely.

I'm surprised to read that, because that's how I've always used Git (and GitHub).

That's what I've understood to be good practice with Git, and it was liberating compared with what came before. One of the nicest things about Git is you can throw things in locally without worrying about how it looks, and make it presentable later.

show 2 replies
ezsttoday at 4:30 PM

Every success story and happy conversion to jj is evidence that hg should have won the DVCS war, but more importantly, that VCSes and their inherent merits and tradeoffs were always secondary to the social networks underpinning them. GitHub as a defacto monopoly really killed innovation in the VCS space, but also shifted the focus and attention elsewhere. That's why I don't think there'll be so much of a "post-git" without as much as a "post-github".

show 1 reply
dwbtoday at 7:09 AM

Yes, it’s fantastic. I have a post-tool-use hook for Claude Code to snapshot the repository for every edit. It’s like the built in file history feature but native in my VCS and works for my edits too. Don’t want to froth too much but JJ is my favourite piece of software in a while, and the fact that it’s not VC-funded is a major plus point.

show 2 replies
zelphirkalttoday at 9:20 AM

What's the difference between "snapshots" and git commits? In my mind a git commit is already a snapshot of the repo and the changes one staged. In what way can you move around more freely than what one can do with magit, deciding for files, hunks, or even single lines of code, whether or not they get staged and committed?

show 2 replies
PunchyHamstertoday at 2:59 PM

It seems to have been build on great idea. Git's "plumbing" is just a set of snapshots of the tree, and everything above is built on that so replacing the porcelain with something better fitting the problem is far more useful than trying to reinvent the wheel and making yet another distributed tree snapshot based VCS just to reinvent user facing tooling like the other VCS tried

jiggunjertoday at 2:52 PM

Definitely not true about models knowing jj. I've had latest opus and gpt fail at revsets and fileset syntax, even hallucinating subcommands like jj move (maybe it existed before, interface is not stable). Luckily it's easy enough to not need them most of the time.

show 1 reply
RickStoday at 6:33 AM

I gotta say, jj was not something that interested me before, but that's a compelling pitch.

prependtoday at 4:26 PM

Do you not use git branches? Your use case was why git was made.

show 1 reply
orbifoldtoday at 4:27 AM

is there a jj hosting service?

show 7 replies
Imustaskforhelptoday at 7:37 AM

I was doing something with jj snapshots with AI now that you have mentioned.

I will admit, I didn't know jj but I wanted snapshots so I used it, so then when AI made some changes and kept on going and I wanted to go back to a particular change and I used ai to do that. It was actually really frustrating. To the point that I think I accidentally lost one of the good files within the project and I had to settle on good-enough which I had to try to get for hours to that particular point.

My point feels like I should either learn jj properly to use it or to at this point, just ask AI agents to git commit. Another point but I was using ghostty and I had accidentally clicked on the title bar and somehow moved the folder to desktop, I wasn't thinking the most accurately and I just decided to delete it thinking that it must have copied it rather than moved it. (Also dear ghostty why do you make it so easy to move folders, it isn't the best of features and can lead to some honest errors)

My face when I realized that I have deleted the project:

Anyhow decided to restore it with ~/Trash but afterwards realized that the .git/.jj history is removed because it deletes hidden folders (from my understanding) so I definitely lost that good snapshot. I do have the binary of the app which worked good but not the source code of it which is a bit frustrating

These were all just an idea of prototyping/checking how far I can move things with AI. Yeah so my experience for that project has been that I could've even learnt a new language (Odin) and the raylib project to fix that one specific bug in lower time than AI which simply is unable to fix the bug without blowing the whole project in foot.

I think the takeaway is to have good backups man. I mean I was being reckless in this project because I had nothing to lose and was just experimenting but there have been cases where people have lost databases in prod. So even backups should be essential if you find any source code which is good to be honest.

I am sure you guys must have lost some source code accidentally which you have worked upon, would love to hear some horror stories to hopefully know that I haven't been the only one who has done some mistake and to also learn something new from these stories. (I am atleast happy in the sense that I learnt the lesson from just an tinkering thing and not something truly prod)

rimliutoday at 8:26 AM

"I can iterate freely without thinking".

Vibecoding moto.

dagurptoday at 9:03 AM

The biggest problem with Jujutsu is the name. I would love to hear a Swedish person try to pronounce it.

show 1 reply