git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Stage or discard a hunk at a time?

From
Jeff King <peff@peff.net>
Date
Apr 22, 2019, 19:28 UTC
Message-ID
<20190422192821.GA22798@sigill.intra.peff.net>
In-Reply-To
<CAAVFnNminTx_z9Y=jhzDnT0n5_zGD_k2SA84HQqMvKHJSvKcSA@mail.gmail.com>
On Wed, Jan 16, 2019 at 01:09:03PM -0600, Cameron Steffen wrote:
Show 9 quoted lines
> I have this feature idea for git. There should be a command that
> effectively combines git add -p and git checkout -p so that I can
> navigate changed hunks and either stage or discard them.
> 
> There is already a SO question asking about this exactly...
> https://stackoverflow.com/questions/11538650/simultaneously-git-add-p-and-git-checkout-p
> 
> Has this been discussed before? Is this a reasonable request? If so, I
> might look into contributing the change myself.

This is something I've sometimes wanted, too. I don't think it would be _too_ hard to do by modifying the add-interactive code. Both of those operations are driven by the same code; see the %patch_modes hash in git-add--interactive.perl, which defines the various situations. You would need to modify the actual code to handle the tri-state (there is not just "yes, apply it" and "no, leave it alone", but now "apply / discard / skip"). But it seems do-able.

If you do plan to work on it, be aware that the perl bits of add--interactive are being re-written in C. So it might make sense to target the new C implementation instead of modifying the perl.

-Peff
PS Sorry for the slow reply, and I hope you're still interested in the
   topic. Your message got throw onto my "interesting, should reply"
   pile and I just happened to see it while clearing out old mails. :)
Previous: Cameron SteffenNext: Johannes Schindelin
Message 2 of 4 in “Stage or discard a hunk at a time?”
  1. Cameron SteffenJan 16, 2019
  2. Jeff KingApr 22, 2019
  3. Johannes SchindelinApr 30, 2019
  4. David AguilarApr 28, 2019

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.