Live data from Hacker News

The creator of Jujutsu has joined ERSC

ersc.io

251–260 of 283 posts

Re: The creator of Jujutsu has joined ERSC

#251

I pretty much only use jj now, and it was really good even just with the CLI. But adding jjui changed the story entirely. I now rarely use jj without just booting up jjui first. It will be good to see what jj will look like with more funded dev work, but I'm always a little worried about financial incentives mixing with the tools I use for the long term. I guess the saving grace is that I don't really need more upgra…

Same here. I keep jjui open the whole day, rarely reaching for jj itself. It really changed the way I work with repos.

Re: The creator of Jujutsu has joined ERSC

#252

Earlier quoted context omitted.

Now imagine having other branches starting from the commits that just got rebased, also including merge commits. jj handles that just as well.

git rebase --onto --rebase-merges ?

How many of those do you need? How do find the correct arguments and git checkouts to do before? Are you sure you remembered to do everything? What if there are merge commits?

All of that is automatic with jj.

Re: The creator of Jujutsu has joined ERSC

#253

Earlier quoted context omitted.

I like to compare Google and jj to Mozilla and Rust: Google employed Martin and some other maintainers, but it's always been an OSS project under the Apache 2.0 license. That being said, there's a few things that lead to this perception: the first is that it used to be under Google's GitHub account, but is now under its own org. The second is that contributing to jj does require signing Google's CLA. That is somethin…

Thanks! Maybe if Martin could comment - his @google.com email still appears in the repo readme, I'm assuming he doesn't have access to that box anymore - was the repo move and ownership coordinated with Google prior to his leaving?

The move from martinvonz/jj to jj-vcs/jj happened almost two years ago. https://github.com/jj-vcs/jj/commit/b836e0ae9518154cd52f94e0... (from 2024-12-17) says that it was recent at that time. Google were owners even when it was under martinvonz/jj, however.

Re: The creator of Jujutsu has joined ERSC

#254

Earlier quoted context omitted.

git rebase --onto --rebase-merges ?

How many of those do you need? How do find the correct arguments and git checkouts to do before? Are you sure you remembered to do everything? What if there are merge commits? All of that is automatic with jj.

> How many of those do you need?

How many do I want?

> How do find the correct arguments

How do you find the correct arguments for jj?

> and git checkouts to do before?

Why would I do a checkout before? I don't want to modify the worktree? Maybe I in fact also want to alter the worktree, but that's unrelated.

> Are you sure you remembered to do everything?

Am I sure I have all my files ordered? No. Does it matter? Also no. Are you sure you have no bug in your commits in JJ?

If I want git to alter some set of commit chains, I can tell it to. Actually I never needed to do that, because I don't work on several thousand branches at the same time. I prefer it to not alter unrelated branches automatically, just because some earlier commit changed that is in both. Such things actually undermines the trust I have in a tool, because it does things I haven't told it to do, even if I'm aware it does these things.

> What if there are merge commits?

Then I resolve them. Merge conflicts occur, because there is some actual conflicting change and often it is also semantic. These don't go a way by changing the VCS. On a theoretic basis, these require outside information(=decisions) that is not there yet. There are more often semantic conflicts, that are not syntactic, then there are the other way around. If you are referring to doing the same merge conflicts again, I can tell Git to resolve them automatically too, but it actually occurred too often, that this is not actually what I want, so I actually dislike that feature now.

Re: The creator of Jujutsu has joined ERSC

#255

Earlier quoted context omitted.

How many of those do you need? How do find the correct arguments and git checkouts to do before? Are you sure you remembered to do everything? What if there are merge commits? All of that is automatic with jj.

> How many of those do you need? How many do I want? > How do find the correct arguments How do you find the correct arguments for jj? > and git checkouts to do before? Why would I do a checkout before? I don't want to modify the worktree? Maybe I in fact also want to alter the worktree, but that's unrelated. > Are you sure you remembered to do everything? Am I sure I have all my files ordered? No. Does it matter? Al…

Separate git rebase commands. JJ manipulates the whole DAG in singular operations, where as with git you're working one ref at a time. And carefully managing where one ref intersects with another, to rebase those commits only once, reusing the rewritten commits from the previous git rebase. With jj you just say "that thing, over there" and all descendant commits and bookmarks are updated, no matter what the shape is.

Re: The creator of Jujutsu has joined ERSC

#256

Earlier quoted context omitted.

> I don’t like to think about how I’d do that with git. git -c sequence.editor="sed -i '1ip oldercommit'" rebase -i @~ Git using standard UNIX tools for these things instead of a specialized syntax, means I can easily write more complicated automations.

I guess you could say it’s a skill issue.

I do, but I don't really get it, because you did learn the jj command. I mean you could have learned jj first, I would understand that, but I presume that is not the case.

Re: The creator of Jujutsu has joined ERSC

#257
post #239

Earlier quoted context omitted.

> I don’t like to think about how I’d do that with git. git cherry-pick + git rebase -i (to swap commit order)? ?

Along with the appropriate git stash and git stash pops or git commit -anm wip and git reset HEAD^ so long as you’re not using your staging area for anything, yeah. But if the cherry pick doesn’t cleanly apply at the current HEAD, then you have to remember to either do the git rebase -i first and pause at the appropriate place to cherry pick it if that works (I think it should? though I also recall rebase only lettin…

> Along with the appropriate git stash and git stash pops

If you don't want to do that, you can tell git to do it automatically too? I actually thought I would like that, so I used it for a week. I did not like it at all.

> But if the cherry pick doesn’t cleanly apply at the current HEAD

If the diff you want to commit isn't applicable to the tree you want to apply it to, it's not going to work, no matter the VCS you use.

> then you have to remember to either do the git rebase -i first and pause at the appropriate place to cherry pick

You say that like these would be separate operations, but for me these are very much not, I guess like the fact that you need to supply both '-r oldercommit' and '--before @-' are for you. I think this is the point where I actually don't understand your view. Like, we both need to supply two parameters, we need to because this is the operation we want to do. You write two parameters free form, I write one free and select the other from a list. There is a difference, I actually think selecting from a list can be more convenient in some cases, less in others. But I don't get why you write like it would be crazy work.

> though I also recall rebase only letting you pause before a commit so you lose your commit message, but that’s probably a me problem

It does only let you handle full commits, if that's what you mean, if you want to split a commit you need to provide information how. But that it doesn't sound like you mean that.

> so you lose your commit message

You can apply commit metadata independently of the tree you want to commit, so that definitely occurs never.

> maybe detach your head

I bet you don't have issues with detaching the head in JJ, so why do you in Git, it's just a normal state.

> start doing surgery because otherwise you’ll be resolving conflicts in two different directions as you cherry pick and then rebase

Yes, but that is not because you use Git, but because you wrote the change against some other commit first, which you don't do in your JJ example. You could do that in Git as well and then you only have one set of merges to resolve.

> I’m usually going back to git reflog to try to find the last point where history made sense

Which is git rebase --abort or git reset @{1}. The latter is always the same, this is as silly as saying I can't remember whether it's jj undo or jj revert.

> But I said I didn’t want to think about this anymore.

Yet you do in JJ.

Re: The creator of Jujutsu has joined ERSC

#258

Earlier quoted context omitted.

How is it under its own org, but changing the CLA is up to Google? Google must therefore administer the separate org? I get why you may want to color this as non-Google-owned but it seems to very much still be Google-owned.

I don’t actually know who owns the org offhand. My point is not that it is “not Google owned” but to point out the specifics, which really matter. “Google owned” to me implies that they own the copyright to contributions, which they very much do not. That doesn’t mean that they have no control over it at all, of course, but the specific details matter a lot.

Who is the assignee in the CLA? It is not obvious to me.

Re: The creator of Jujutsu has joined ERSC

#259

Earlier quoted context omitted.

Along with the appropriate git stash and git stash pops or git commit -anm wip and git reset HEAD^ so long as you’re not using your staging area for anything, yeah. But if the cherry pick doesn’t cleanly apply at the current HEAD, then you have to remember to either do the git rebase -i first and pause at the appropriate place to cherry pick it if that works (I think it should? though I also recall rebase only lettin…

> Along with the appropriate git stash and git stash pops If you don't want to do that, you can tell git to do it automatically too? I actually thought I would like that, so I used it for a week. I did not like it at all. > But if the cherry pick doesn’t cleanly apply at the current HEAD If the diff you want to commit isn't applicable to the tree you want to apply it to, it's not going to work, no matter the VCS you…

If I may ask, how much time have you spent trying to learn use jj? I ask because I've seen a strong tendency for people to who have never used it to argue against it. I see much less arguments against it from people who understand both Git and jj well. But that's just my impression; I may of course be wrong.

Re: The creator of Jujutsu has joined ERSC

#260
post #245

Earlier quoted context omitted.

How is it under its own org, but changing the CLA is up to Google? Google must therefore administer the separate org? I get why you may want to color this as non-Google-owned but it seems to very much still be Google-owned.

Because Martin was the lead maintainer and original author and worked at Google for over a decade until like a month ago, and so as a project it fell under their typical standards in the Google OSPO department and had a CLA applied. When it moved orgs, they had to own the org too, so they could keep CLA robot in. That's basically it. It's just a really successful project that has grown far beyond one company or perso…

I'm trying to come from a place of help, truly, so bear with me.

You have to get out from under Google. This would be a red flag during due diligence for many investors.

I'm not saying Google is going to fuck you over but why not just get yourself into a place where you don't need to be writing replies like this, and we don't need to be having this conversation.

And also, I would strongly recommend acquiring trademark rights as soon as possible. If a foundation is formed later you can decide what to do with them, but having them protected is a huge deal.

There's nothing starting me from creating jjhub.com tomorrow and that is a real potential threat for you.

Post reply on HN