← Back to context

Comment by dizzant

11 hours ago

Thank you for the many tool links! You seems to know this space well. I have come to pick your brain for more.

I have been searching for a while for good tools to split/regroup diffs in a patch series. hunk.nvim looks interesting. Do you know of similar/competing tools?

I frequently hit a problem where removing a spurious hunk from an old commit causes cascading conflicts in all subsequent commits. Are there tools to propagate hunk removal into the future without the manual conflict-resolution pain?

Thanks again!

Are you looking for solutions within git or jj?

In my experience with jj when resolving a conflict, as long as I do it in the earliest change, I will only have to do it once.

Git has the rerere setting [0] which reduces the need to resolve the same conflict over and over

0: https://git-scm.com/book/en/v2/Git-Tools-Rerere

I can't help with your actual problem but I am incredibly curious about how/why you run into this so frequently you need a tool for it. I feel like in my 15 or whatever years of using git I have basically never wanted to remove a hunk from an old commit or anything similar.

  • I try to leave a good commit trail in my PRs. These are often _not_ the reality of how the code was written and originally committed, but a rough approximation of the intended steps with the benefit of hindsight.

    A tool like https://github.com/tummychow/git-absorb has been on my to-try list for a while, but for now I do it by hand.

Not the GP, but I might recommend Jujutsu for that, try it and see. It does the right thing when you resolve commits, and it propagates them to git. However, I'm not sure if it'll work, try it and see.