Re:I struggled with Git, so I'm making a game to spare other...
by WolfeReader on Monday March 03, 2025 @05:02PM
(#43247393)
In Mercurial, you are ideally using TortoiseHg. When you make a commit, you can quite easily choose which files or hunks or lines to commit (and which not to commit, obviously). In that sense, the GUI acts as the staging area.
For Jujutsu, there's two good options I know of:
1. Use "jj commit -i". This opens up a screen which lets you interactively select files/hunks/lines to commit. You can also pass in a "--tool" commit to use something like Meld.
2. Use the "squash workflow" - basically making your own staging area using jj's flexibility. I can't explain it better than Steve does: https://steveklabnik.github.io/jujutsu-tutorial/real-world-w...
Re:I struggled with Git, so I'm making a game to spare other...
by WolfeReader on Monday March 03, 2025 @05:05PM
(#43247415)
Oh, and if you think JJ "forces you to work on one thing at a time" then you have really missed a lot of what JJ offers. Look up "megamerge" - I've done this, and it works well. Here's a link: https://v5.chriskrycho.com/journal/jujutsu-megamerges-and-jj...
I acknowedge that the inconsistent argument style looks clumsy when remembering `git log --name-only --oneline`. However, I value the workflow afforded by the stage: I can keep work for several tasks in my workspace until I am ready to commit them.
I've checked Fossil, Jujutsu, and Mercurial. Each disavows the stage. I understand that it takes more discipline (and I occasionally fail to adhere to that discipline). But, I'm not interested in the other features of a vcs if it forces me to work on only one thing at a time.