logoalt Hacker News

umviyesterday at 11:45 PM6 repliesview on HN

I like the idea of jujutsu, but I must not operate at a scale where its "killer features" would truly shine. Git hardly ever gets in my way, I have never had to do complex octopus merges or anything like that. It's usually: feature branch, implement, merge, and occasionally fix a merge conflict. JJ seems like it's more for people that like to have tons of active branches that they are constantly switching between whereas I usually only work on 1 thing at a time. I've never thought to myself "git is so frustrating I wish there were something better" because I only use the same 5 commands over and over every day and they never get in my way. Not to mention jj has its own share of esoteric syntax with all the "@--+::" business and I'd have to re-wire my brain to remember those symbols instead of `ref~N`, etc.


Replies

y1n0yesterday at 11:57 PM

I was a skeptic until a few months ago. It’s my daily driver now. I’ve got sizable amount of people committing to the same repo, many are not skilled with git. So I deal with weird crazy “how did you ever get the repo into this state” issues not infrequently.

JJ is just so low friction. The seamless and painless shuffling of commits, working up and down the commit chain without explicit rebasing, unchanging change-ids. The min identifiers in change-ids being highlighted. Being able to make commits and worry about the message later. Snapshots of changes while you are working serving as a tool agnostic undo.

Painless and sensible cli args that are vastly more consistent than git.

Superior conflict handling.

You can “jj undo” anything and it works perfectly.

It’s fabulous.

> "@--+::"

I have no idea what that means and I’ve never had to type anything remotely like it.

The rev specification language is pretty elaborate but you don’t need to know it.

show 2 replies
ehsankiatoday at 2:50 AM

I disagree.

Similar to you, 95% of the time I do the simple use case that I've memorized. The problem is that even after a decade of using Git, when I get into those 5% where something goes wrong, I have no idea how to actually solve it. None of it makes any sense in my head, and I have to search for a bunch of magical commands to run, or nuke things to get back to a good state.

With JJ, it just makes sense. It's intuitive and clear. I have been able to recover without any help. Just the undo alone is basically a life saver. Rebasing and merge conflict resolution is so much simpler.

Yes I probably won't use it to its full potential, but still, the little I do use makes 10x more sense than Git ever did.

dcretoday at 12:28 AM

A few advantages for me, even for the same 5 commands I use over and over:

- undo

- shuffling commits around with squash, split, and rebase is much better than git’s interactive rebase

- make commits without having to come up with a branch name (I might make three versions of the same change in parallel to see how they compare)

I see git is working on adding some of this under the history command. The revset language is really not esoteric: @ is head, @—- is two behind head. That’s about it.

Part of it is that the sorts of shuffling I used to avoid because they were a pain in git (so I didn’t feel I needed them improved) are so easy in jj that I do them all the time.

dullcrisptoday at 3:46 AM

I don’t know about you, but if you ever run git commit --amend, git rebase -i, git reset, git reset --hard, git stash, git add ., git push --force-with-lease, then these are all workflows that jujutsu makes easier and less error-prone.

nchmytoday at 1:45 AM

if you make commits, then you are at the scale where its killer features would shine. In other words, even the most basic git usage is made easier with jj.

If you care to learn more, there's tons of posts on hn and the broader web, so I won't bother sharing any links. I will say, though, that you should use it with jjui, which is a tremendous TUI for jj - you don't even really need to learn any of the actual jj syntax because it just handles it all for you.

brigandishtoday at 1:48 AM

jjui is the killer feature for me

https://github.com/idursun/jjui