jj let me make changes to my git commits without fear, since version control of the git state itself let me undo those changes easily, too.
Defeating Git Rigour Fatigue with Jujutsu
171–180 of 193 posts
Re: Defeating Git Rigour Fatigue with Jujutsu
#172I don't get why people like jujutsu. I tried it for a while but I work with a quite a few people in the same repo and I need easy named branches that keep up with commits. For all the many problems in git, branches are dead easy. That was the big innovation over svn at the time. Last time I tried jj, branches were an extremely laborious process to keep up to date. I don't see how people that aren't working alone can…
I think much of the problem with this thread is people trying to convince one way is superior/inferior. There are just multiple different ways of working. Some ways fit some people's mental models better. You're not going to get a definitive "jujutsu is better than git" or vice versa. You should accept that some people have no problems with what you've described using jujutsu, and likewise jujutsu users should unders…
For example, your "not all that different from looking at all (recent) heads" implies that the number of (recent) heads isn't far off from number of (would-be-)branches (i.e. no random offshoot experiments, stashed-away debug sessions; whereas I make many of such continuously (were stashes on git (with occasional grumbles about not being able to stack stashes), regular commits now on jj (maybe with a special-format description, if I bother)));
and that you (even if subconsciously) try to ensure that the head of a branch is always identifiably-representative of the branch (i.e. don't put some random unrelated change at the tip with the idea of "I'll put this in a more proper place when I get back to this").
Effectively, using the full commit graph not as a place where anything potentially-useful can stay, but rather by itself a complete picture, with things not fitting into it going into.. idk, just being abandoned, to be found by looking through the op log? commit IDs saved in an external file? wading through evolog / scanning through `jj show -r xyz/2` etc?
Re: Defeating Git Rigour Fatigue with Jujutsu
#173Re: Defeating Git Rigour Fatigue with Jujutsu
#174Earlier quoted context omitted.
You don’t need easy named branches. Naming branches is a chore: since you already spend time writing commit messages, branch names are just a summarization of your commit messages but with more character restrictions. That’s why I always use jj’s automatic commit identifiers. They are short and I don’t waste brain cycles naming things that are ephemeral. When I push, I let jj automatically creates, updates, and delet…
I name my branches for the overall task. The description of the branch’s head commit in jj status doesn’t tell the whole story.
Re: Defeating Git Rigour Fatigue with Jujutsu
#175Earlier quoted context omitted.
A lot of humans don't currently trust agents to touch VCS today. I also find that my agent tends to be much better about dealing with jj than it is with git.
Culture change is hard. A lot of humans still don't use git too. Many do only when they are forced. And it's much easier for a professional to be forced to use LLMs than jj when it comes to versioning assist (not even comparable in mindshare but the obvious needs to be said sometimes). So unfortunately I'm afraid jj is not going to achieve critical mass before 99.99% of merges are done by AI which don't need jj.
Also there are many ways to use llms. Some people control it at code review, but others control it as the VCS.
Re: Defeating Git Rigour Fatigue with Jujutsu
#176I'd like to give jj another go but I found the "all files must be tracked/committed" approach to really break my workflow. I have a lot of temporary uncommitted files, which are not ignored or excluded. Some may eventually be committed but most won't. Being then forced to commit these (but only some due to file size) just gets in the way and impedes things like cross branch debugging A checkout is a working space aft…
Re: Defeating Git Rigour Fatigue with Jujutsu
#177Earlier quoted context omitted.
Not trying to tell you how to live your life, obviously, but I think “changes for the sake of changes” overstates it. For example, `jj undo` is a pure ergonomics win. It’s been said a million times but it is really true that jujutsu’s appeal is something you feel (or don’t) after giving it a proper go. It doesn’t survive compression into the feature list. Actually I think that property is a much bigger obstacle to ad…
I use magit on a daily basis. And I do use tig occasionally (I don't like lazygit). Most of my magit workflows only requires a handful of keys (most are only two keys). If you've not tried Magit before, it's like vim for a git repo. tig is more barebones, but I could quickly configure it to be able to do most of the magit tricks I need. Git cli is tedious. But like all cli operations the goal is always to script your…
That being said, I also much prefer a UI layer (lazygit originally, now lazyjj), and personally I find the benefits of jj to be partly complementary to the UI ones.
That is, after getting used to jj, my problems with git are (1) the CLI ergonomics, and (2) the model is actually more complex than it needs to be, in a way that materially diminishes my experience. Only the first is addressed by lazygit (though maybe magit does both; not sure).
One other point: jj doesn’t actually impose a level-of-control tradeoff on the curation of commits. You can mimic the git workflow by modeling the working copy and staging area as commits (changes, in jj parlance), or you can experiment with any number of alternatives. What git gives you is the opinionated support for the working-copy-staging-area-commit approach.
Re: Defeating Git Rigour Fatigue with Jujutsu
#178I don't get how this is meaningfully different from doing something like: 1. Squash all your commits in this branch to one 2. Move that commit to the working directory with the appropriate git reset command 3. Commit hunks as appropriate.
Re: Defeating Git Rigour Fatigue with Jujutsu
#179Earlier quoted context omitted.
>You don’t need easy named branches. You can't possibly see a use-case for long-lived branches? Say what you will of git, at least it exposes enough knobs that it can mostly accomodate every workflow (possibly with a heavy porcelain layer to hide the plumbing). JJ seems to swing too far in the other direction, great for a "live on head" mentality but less ideal for other setups. (The fact that all edits are automatic…
You can turn off auto-tracking.
Re: Defeating Git Rigour Fatigue with Jujutsu
#180Earlier quoted context omitted.
You can turn off auto-tracking.
Last i checked that only disables tracking of new files, it doesn't do anything to prevent the "auto-amend" behavior for modified files.