Live data from Hacker News

The Jujutsu version control system

neugierig.org

31–40 of 52 posts

Re: The Jujutsu version control system

#31
post #28
post #6

How do the rebased commits work when working with others together on a branch?

It's no different from how rebasing works in any shared git project; rebased commits are re-created with different SHAs.

Right but that doesn't address the collaboration issue: who gets to decide where the branch points to?

Re: The Jujutsu version control system

#32

Earlier quoted context omitted.

You can edit your commit message ahead of time in git too.

What's your workflow like to do this?

There's nothing to it, it's just "git commit".

You then add your changes and "git commit --amend".

(These could be aliases. Mine are "ci" and "ca" respectively.)

Re: The Jujutsu version control system

#34

I’m quite happy with Sapling at work. I still haven’t figured out what Jujutsu does better. I think nothing substantial? Not that Sapling can be easily used in the public sphere. But at a conceptual level I’m not sure there’s anything in JJ I’m missing.

Sapling is great. I worked on it for many years at Facebook and I think we did a pretty good job building a workflow that most developers preferred to Git. To the extent that Jujutsu is similar to any other systems, it is most similar to Sapling — both have a Mercurial heritage (Sapling is derived from hg, while Jujutsu is a new codebase with an hg-inspired UX). However, Jujutsu introduces a number of fantastic impro…

> automatic working copy snapshots

One of my favorite things about Sapling is that all commits are automagically backed up to the cloud. The D in DVCS is not important for roughly every project ever. So I’m not sure how to feel about “every state is a commit”.

Re: The Jujutsu version control system

#35
post #32

Earlier quoted context omitted.

What's your workflow like to do this?

There's nothing to it, it's just "git commit". You then add your changes and "git commit --amend". (These could be aliases. Mine are "ci" and "ca" respectively.)

You can do that. But I mean there is literally a spot in the .git directory for the work-in-progress commit message. When you later do git commit -a or whatever, it pulls up the message.

Re: The Jujutsu version control system

#36

Earlier quoted context omitted.

You can edit your commit message ahead of time in git too.

What's your workflow like to do this?

I don’t do it, because I don’t find it valuable. I’m kinda confused at why patent poster wants to do this. Just pointing out that git supports it too.

Re: The Jujutsu version control system

#37
post #28

Earlier quoted context omitted.

It's no different from how rebasing works in any shared git project; rebased commits are re-created with different SHAs.

Right but that doesn't address the collaboration issue: who gets to decide where the branch points to?

The person who last pushed.

jj force pushes by default, but unlike git, the force push defaults to the "safe" variant (similar to git's --force-with-lease). So you won't accidently overwrite someone else's changes with your force push.

Re: The Jujutsu version control system

#38
post #32

Earlier quoted context omitted.

There's nothing to it, it's just "git commit". You then add your changes and "git commit --amend". (These could be aliases. Mine are "ci" and "ca" respectively.)

You can do that. But I mean there is literally a spot in the .git directory for the work-in-progress commit message. When you later do git commit -a or whatever, it pulls up the message.

Is there any way you can be specific enough for people to reproduce this?

Re: The Jujutsu version control system

#39

Great article. How do people deal with the lack of branches, esp in a full time setting where it's common to have a few independent features on the go?

There are still branches, but they aren't named by default. You give them names with "bookmarks", which you can push to remote git repositories as branches. This lets you work on things without having to worry about giving it a name. This turns out to be pretty helpful when you're experimenting — just "jj new " and start editing. If it turns out to be something you want to share, "jj bookmark create " and then you ca…

What changes the change ID? What constitutes a change? Is a change made up of many commits, or the other way around?

Re: The Jujutsu version control system

#40

What front ends work with jujutsu? Do I have to start doing all on the command line, or can I use existing clients such as Fork? Kudos for the article. I have been seeing jj here and there, but this is the first that made me want to try it.

AFAIK there is no polished standalone frontend for jj yet. https://github.com/gulbanana/gg comes closest but I ran into some quirks when using it on git compatible/colocated repos.

Someone has made a VSCode plugin but it's closed source and I believe it will be paid at some point? https://www.visualjj.com/

If you are willing to use a TUI, jj-fzf (https://github.com/tim-janik/jj-fzf) has been wonderful and development is extremely active too.

I exclusively use git through the GUI, but the jj CLI improves so much over the git CLI that I'm willing to live with the CLI for now.

Still hoping that the GUIs become more polished though, and also for Inteliij IDEA integration.

Post reply on HN