Live data from Hacker News

Staging patches with git add (2024)

simonholywell.com

11–20 of 54 posts

Re: Staging patches with git add (2024)

#12
Magit allows selective staging/unstaging, either of hunks, or by selecting lines (AKA Emacs's "region"). I avoid staging from the git commandline, unless I'm just doing whole files.

PS: Majutsu provides this too (a magit-like tool for jj)

Re: Staging patches with git add (2024)

#14
> If you’re not already using git add -p to stage your commits then you’re missing out.

After switching to jujutsu, I assure you I don't miss this feature.

jj takes the opposite approach. It keeps staging things, and you use split whenever you want to separate things out.

(And yes, it stores the staged changes as revisions, so you can always back out to a previous staged state).

Re: Staging patches with git add (2024)

#15
post #4

I find splitting hunks a pain. I wish I could just split by line, would be a great feature.

Mercurial's `hg commit -i` with the curses interface is so much better for this it's not even funny. Fortunately I'd assume Jujutsu's UX is similar, based on arccy's comment.

Re: Staging patches with git add (2024)

#16
post #14

> If you’re not already using git add -p to stage your commits then you’re missing out. After switching to jujutsu, I assure you I don't miss this feature. jj takes the opposite approach. It keeps staging things, and you use split whenever you want to separate things out. (And yes, it stores the staged changes as revisions, so you can always back out to a previous staged state).

I've sadly had to back out of using jj after leaning into LLM coding assistance, as, even with an extremely well-written jj guide in its context (and literally blocking the use of git), it never failed to screw things up more than if I was just using git (I call this an "LLMpedance mismatch" problem)

If LLM coding assistance continues to increase, it's going to be a rather large speed bump to cross

One of the biggest problems is actually unsolvable if you want to keep colocated Git and git tooling around, because it has to do with how jj fundamentally works: detached HEADs, detached HEADs everywhere

You yourself may not use AI, this is for those who do and are interested in switching to jj

Re: Staging patches with git add (2024)

#17
My biggest problem with `add -p` is correcting any patches I added or rejected by accident. Often times I skip through dozens of things I don’t want to add, then realized that last hunk was something I did need. But I can’t re-visit it, I have to start over and try extra hard to not skip past it again.

I wish the j and k shortcuts could revisit hunks I’ve already added/rejected, not just ones I haven’t reviewed yet. On a large set of unstaged changes that you mostly don’t want, it really sucks to “lose your place” in the list of hunks.

Re: Staging patches with git add (2024)

#19
post #14

> If you’re not already using git add -p to stage your commits then you’re missing out. After switching to jujutsu, I assure you I don't miss this feature. jj takes the opposite approach. It keeps staging things, and you use split whenever you want to separate things out. (And yes, it stores the staged changes as revisions, so you can always back out to a previous staged state).

I've sadly had to back out of using jj after leaning into LLM coding assistance, as, even with an extremely well-written jj guide in its context (and literally blocking the use of git ), it never failed to screw things up more than if I was just using git (I call this an "LLMpedance mismatch" problem) If LLM coding assistance continues to increase, it's going to be a rather large speed bump to cross One of the bigges…

I don't let LLMs make commits for me - git or jj.

OK, OK - I lie. For personal projects I do - some handle jj decently well. But at work I don't let it make any commits ... and it never tries to.

What tools are you using that won't work with detached heads?

Re: Staging patches with git add (2024)

#20
post #9
post #4

I find splitting hunks a pain. I wish I could just split by line, would be a great feature.

Use 'e' in -p mode and you can edit the hunks as you wish, choose lines, etc.

it's not as easy as you said. it can be tricky and complicated to use edit mode. I usually use it, but still often don't understand - will this edit succeed or why it is failed.
Post reply on HN