threads / discuss / 29754

git-cherries

Subject: git-cherries

## tl;dr

3 messages between Feb 27, 2012 and Mar 2, 2012.

replies: 2people: 2as markdown or json

Thien-Thi Nguyen· Feb 27, 2012, 10:56 UTC · lore

For my personal use, i wrote git-cherries, attached. It commits each hunk of every modified file separately (creating cherries to cherry-pick later, you see).

I am writing to ask if this is already in Git somewhere, and if not, for tips on how to make it faster / more elegant.

Please cc me in replies, as i am not subscribed.
Thanks!
_____________________________________________
Jeff King· Feb 27, 2012, 19:27 UTC · re: Thien-Thi Nguyen · lore

Re: git-cherries

On Mon, Feb 27, 2012 at 11:56:19AM +0100, Thien-Thi Nguyen wrote:
Show 6 quoted lines
> For my personal use, i wrote git-cherries, attached.
> It commits each hunk of every modified file separately
> (creating cherries to cherry-pick later, you see).
> 
> I am writing to ask if this is already in Git somewhere,
> and if not, for tips on how to make it faster / more elegant.

So if I understand correctly, this just creates a series of commits, one per hunk, of what's in your working tree. And the commit messages won't be useful, so this is really about recording the work somewhere so that you can pick it out later using "git cherry-pick --no-commit", make a real commit from some subset of the cherries, and then throw away the cherries?

I think you could do this more simply by putting everything in a single throw-away commit, then using "git checkout -p $throwaway" to pick the individual cherries from the single commit. You don't grab the commit message from $throwaway as you might with cherry-pick, but by definition it's not a very good commit message anyway.

-Peff
Thien-Thi Nguyen· Mar 2, 2012, 11:19 UTC · re: Jeff King · lore

Re: git-cherries

() Jeff King <peff@peff.net> () Mon, 27 Feb 2012 14:27:46 -0500

   So if I understand correctly, this just creates a series of commits, one
   per hunk, of what's in your working tree. And the commit messages won't
   be useful, so this is really about recording the work somewhere so that
   you can pick it out later using "git cherry-pick --no-commit", make a
   real commit from some subset of the cherries, and then throw away the
   cherries?
   I think you could do this more simply by putting everything in a single
   throw-away commit, then using "git checkout -p $throwaway" to pick the
   individual cherries from the single commit. You don't grab the commit
   message from $throwaway as you might with cherry-pick, but by definition
   it's not a very good commit message anyway.
Cool; "git checkout -p" was what i was missing.  Thanks for the tip!

← back to recent threads