fractal.beauty

2026-08-09

Two weeks with Jujutsu

I started using the Jujutsu VCS about two weeks ago, mostly to see what the hype was all about. I’ll probably be sticking with it for now; I’ve been running jj git init in more and more repos, and haven’t run into anything that would push me switch back yet (or many problems at all, really).

My experience so far:

My only feature request so far is to see where changes landed after jj absorb. There is an open feature request for this, and jj absorb --interactive merged a few days ago, which might help. I think I could also see the changes using the op log (or maybe in a GUI), but haven’t looked into it yet.

I’ve tried one or two VSCode extensions, and the one I’m using now is fine, but missing plenty of features. This is to be expected though and I’m sure they’ll improve. I can do all the manipulation I need to with the CLI, but seeing stuff visually in the IDE (in particular, I would like to split changes visually) would be nice.

I think if I was recommending a VCS to someone who had never used Git before, and they won’t ever need to interact with others (it’s totally possible, but they’d probably need to learn Git as well), I could comfortably recommend Jujutsu.

I think the conceptual model is simpler, the commands are more obvious, and there is less weird stuff to run into. On the other hand, ecosystem (GUI tools, etc.) are less mature. If someone is already comfortable with Git, I don’t think they necessarily need Jujutsu, but points 1/2 above alone have made my life easier already.

Some resources I used while adjusting:

I’ve also lightly edited my config:

# config.toml

[revsets]
bookmark-advance-to = "closest_pushable(@)"

[revset-aliases]
"closest_pushable(to)" = "heads(::to & mutable() & ~description(exact:'') & (~empty() | merges()))"

[aliases]
recent = ["bookmark", "list", "--sort=committer-date-", "--color=always"]
bookmark-create-tracked = [
  "util", "exec", "--", 
  "sh", "-c", 
  "jj bookmark create \"$1\" -r 'closest_pushable(@)' && jj bookmark track \"$1\" --remote origin", 
  "_"
]

Paraphrased from this reply on Bsky, with additions.