top | item 44900455

Jujutsu and Radicle

132 points| vinnyhaps | 6 months ago |radicle.xyz

96 comments

order

JimDabell|6 months ago

I’ve started using Jujutsu recently and was surprised at how low friction it was to switch. If you’re like the author and keep hearing about it without giving it a shot, I suggest you just sit down and try it – it’s a lot less effort than you might expect.

sestep|6 months ago

I really like all the concepts and have only heard good things, so I tried it but wasn't able to figure out how to use it as effectively as I can use Git. Specifically, I use VS Code and do a lot of stuff with the IDE's builtin support for selecting specific parts of files to stage, and I was hoping to be able to do something similar for jj split. I asked the Jujutsu Kaizen devs on Discord and they said that isn't currently implemented. They did also mention that VisualJJ might have more what I want, but I'm reluctant to switch to JJ only to have to rely on a closed-source tool.

Are there others who've previously made heavy use of VS Code's builtin Git staging support and have successfully migrated to JJ? Anything I'm missing?

diarrhea|6 months ago

One of my favorite features of jj is file watching. Once set up, jj will snapshot the repo on every filesystem event. This means on every file save, you get a git commit! It provides arbitrarily fine-grained commit history, and works across all tools (not just your IDE). I set it up in the config and it has "just worked" ever since.

The result is that `jj evolog -p` will show detailed history of your actions. But all but the most recent commit are hidden, so neatly tucked away behind the same change as usual.

Another favorite is git no longer yelling at me and having meltdowns about switching branches - "files would be overwritten, please stash". This never happens in jj, by design. It's nicer than "auto-stash" options of recent git versions.

wirybeige|6 months ago

I think this is the first blog on JJ that has made me want to use it. The flow seems like it could be quite a bit better than git

prerok|6 months ago

Ok, so I have to admit I started skimming soon, because after explanation of `jj new`, I thought this is just `git commit --allow-empty`. Oh, and you can specify the message! Add `-m` and you are done.

Then it's a series of either git ammends or `git checkout -b` etc.

Now, since there is so much high praise in this comment and sibling comments, what am I really missing? From the post it just seems like the person hates branches for an unspecified reason.

Here's my workflow, of the past 15 years:

- git checkout main - git pull

Do some changes. Do some more changes. Now:

- git checkout -b <feature-name> - git status - gvim into every file and then :Gvdiffsplit, select what I want to stage for each file - git push # open PR if I think it's ready

For the remaining changes not in the commit, I either create a separate commit, or discard.

An honest question of curiosity, how does jj improve this workflow?

LadyLag|6 months ago

I started using jujutsu after the last round of blog posts here, and have found it super super useful to my mental model of git and vcs.

Stealing Fintan's `jj tug` alias from this post is something I have already found useful. Highly recommend if anyone is on the edge of trying to just give it a shot!

vlovich123|6 months ago

How are these patch sets reviewed? Is there some mechanism for integrating with review systems like GitHub?

watusername|6 months ago

From git's perspective, jj bookmarks are just regular git branches, so you can just do `jj git push` and open a PR as usual.

However, unlike git, jj bookmarks are pinned to change IDs instead of immutable commit SHA-1s. This means that stacked PRs just work: Change something in the pr-1 bookmark, and all dependent bookmarks (pr-2, pr-3, ...) are automatically updated. A `jj git push --tracked` later and everything is pushed.

mac-monet|6 months ago

Just waiting for Jujutsu to support submodules and I can replace git completely.

IshKebab|6 months ago

I really hope they don't add submodule support. There's an opportunity to do something that works properly!

ephimetheus|6 months ago

I got into jujutsu recently for the mega merge workflow.

The only thing I’m missing now is support for git submodules, especially when working with workspaces.

This requires me to keep using git worktrees with collocated jj in each of them, which is suboptimal.

steveklabnik|6 months ago

Does jj’s own workspaces not help? I don’t use submodules so I don’t know.

roman_soldier|6 months ago

I tried Jujutsu on a simple repo and it ended up a mess I couldn't fix. Never had that with git. Might be my lack of knowledge but it shouldn't allow this.

Zambyte|6 months ago

jj undo, and jj op log && jj op restore can get you out of any trouble.

landr0id|6 months ago

Did you reach out to `git` commands to make changes to the repo? If you use jj in a colocated repo you should _only_ use jj to manage the repo to ensure it's kept in-sync with jj's data.

If you messed up with jj commands, you can use the op log to fix https://jj-vcs.github.io/jj/latest/operation-log/

nchmy|6 months ago

anyone who is using jj, or curious about using it, please do yourselves a favour and check out jjui - its an incredible TUI for jj. Brings it to yet another level.

https://github.com/idursun/jjui

theusus|6 months ago

I used jj for a while and it was so problematic and seemed like nothing added value as compared to git. And now in the world of LLMs it is more difficult to switch to jj.

r5Khe|6 months ago

I actually think jujutsu is _more_ ideal for the agentic era. It makes it so easy to explore directions, experiment, play, backtrack, move commits around, etc.

steveklabnik|6 months ago

Claude knows how to use jj just fine.

throwaway755755|6 months ago

What happened to Radicle?

_flux|6 months ago

Did you hear something? 1.3.0 was released on August, so it seems it's still a functional project.

vinnyhaps|6 months ago

Follow along with Fintan as he details how he put his Git workflow into submission with Jujutsu and Radicle

frizlab|6 months ago

Yup. Still 0 incentive to try jj. I’m still very much convinced most of the problems solved by jj either do not exist or are already solved by recent features of git.

It’s good alternatives of popular tools exist but git would not be my first bet as a tool that needs fixing…

magnio|6 months ago

Why say yup to disagree with the premise of the article?

rootnod3|6 months ago

I mean, undo alone is a killer JJ feature. Sure, you can always somehow undo any git operation if you dig deep enough, but the ease of use on the JJ side without question.

mrbonner|6 months ago

“You miss 100% of the shots you didn’t take” - Michael Scott.