“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 […]”
Part 2 of the series is out and is here.
I’ve started to tinker with it. “auto commit everything” is an absolute deal-breaker for me. There’s no world in which I want every file I create to be added to source control without asking. I create lots of log files and other temp files when I work. Maybe I just fetched some .json from a service and put it in tmp.json? Maybe I created a small shell script to automate something I’m doing? I guarantee I’m going to end up pushing that shit upstream by accident at some point.
Luckily you can turn it off and use the standard ‘add’ workflow. I did that almost reflexively when I started trying to use jj. (snapshot.auto-track)
However, over time, and once I got the .gitignore fully set up for bigger projects, I’ve come around on re-enabling autocommit for more of my repos. It does flow pretty naturally once you have an established process. I find it enables both better ‘undo’, and more seamless context-switching.
You can also set a more specific snapshot.auto-track on a repo or user basis for personal tooling conventions that don’t make sense to gitignore.