this post was submitted on 02 Aug 2025
30 points (87.5% liked)

Programming

21924 readers
786 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

“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.

you are viewing a single comment's thread
view the rest of the comments
[–] atzanteol@sh.itjust.works 1 points 1 day ago (26 children)

Jujutsu does not use branches much because you are focused on the nodes in the commit graph. And instead of giving every of them manually a name, they are identified with change IDs.

This is... unforgivably obnoxious. What's the point of this? That's like saying "Instead of giving every directory a name manually you identify them by inode." The entire point of branches is to have a name that has meaning to me that I can use to refer to work I'm doing.

As soon as you edit a file, the changes will be included in whatever revision you're currently editing—there's no separate staging area in Jujutsu.

I create log files of runs, temporary helper scripts, build output, etc. in my working copy all the time. And this thing is going to "save me the burden" of having to add files manually by just adding... everything it sees.

You'll have noticed that at no point so far did we ever think about creating a branch. That's because Jujutsu's relationship to branches is a bit different to Git's—they're just pointers that you move around so they point to whichever revision you want them to at a given time.

"Simpler" apparently means I get to do a lot more book-keeping than when I use git.

[–] naonintendois@programming.dev 2 points 1 day ago (18 children)

Jj's closest equivalent of branches are bookmarks, but they don't auto update when you pull from a remote. I wish it was more like a git branch in that sense.

However, editing past commits and reorganizing the tree is MUCH easier in jj. It feels like the commands are more in line with what I want to do rather than having to figure out the specific set of git commands to do what I want.

I did find the "adding EVERYTHING" behavior to be annoying initially. My workaround was to create a local folder and add it to git ignore and push all those temp files there.

YMMV but I've found it much easier to manage complex workflows with jj compared to git.

[–] HaraldvonBlauzahn@feddit.org 1 points 1 day ago* (last edited 1 day ago) (14 children)

YMMV but I've found it much easier to manage complex workflows with jj compared

It is no secret that git's interface is a bit too complex - even XKCD has made fun of it.

But what is amusing is that people now have a kind of Stockholm Syndrome, and plain refuse to believe there could be something better.

(Perhaps motivated by the long list of half-assed helper interfaces and GUIs which just were hapless trying to hide the sprawling complexity).

[–] atzanteol@sh.itjust.works 0 points 1 day ago (1 children)

But what is amusing is that people now have a kind of Stockholm Syndrome, and plain refuse to believe there could be something better.

Wow - way to just brush away any and all criticism as "that sounds like a you problem".

[–] HaraldvonBlauzahn@feddit.org 0 points 1 day ago* (last edited 23 hours ago) (1 children)

jujutsu changes a lot of the affordances to manage changes and I understand that many people will be reluctant to use such a changed interface - for one, after they have spent so much time with learning the git CLI, and also because there are dozens of alternative git UIs and VCSes which claim to offer something simpler.

But: jujutsu offers about similar power and flexibility as git, while requiring much less UI complexity. The proof for this is the much, much smaller amount of required documentation as well as practice before one can work productively with it.

All the changed elements give a very orthogonal and cohesive whole, which is very rare for software of that complexity.

Will this work for everyone? Probably not, that happens extremely rarely.

Will many people pick it up on a whim? No, change does not happen that way. In the ideal case, a kind of logistic function but adoption will be very unlikely to be as rapid as git's adoption.

Will experienced git users drop the work they have to do and spend half a day to try a new tool? Some do, and this is good. Some don't, and this is also good.

So, no, I don't have a problem. People have time and decide to look at something or they don't. Both is fine.

[–] atzanteol@sh.itjust.works 0 points 18 hours ago (2 children)

jujutsu changes a lot of the affordances to manage changes and I understand that many people will be reluctant to use such a changed interface

You lost all credibility when you just blamed my criticism on "stockholm syndrom". Sorry buddy.

[–] HaraldvonBlauzahn@feddit.org 1 points 12 hours ago* (last edited 8 hours ago)

BTW there are two configurations / new commands that could be helpful for you:

  • there is a configuration option (auto-track='none()', already mentioned by other commenterd here) to switch off auto-adding of new files
  • there is an alias command, tug that automatically advances branches / bookmarks to the current commit / change.
[–] HaraldvonBlauzahn@feddit.org 1 points 12 hours ago* (last edited 12 hours ago)

Oh, I was referring to people who do not want to believe at all there could be something easier to use than git. Probably not the best way to express this.

I don't know whether it fits your use case. You decide that.

Also, jujutsu is still immature and has many rough edges.

load more comments (12 replies)
load more comments (15 replies)
load more comments (22 replies)