Yep, after more than a year, I simply cannot get used to it...
http://marc.theaimsgroup.com/?l=git&m=113259043217761&w=2
And as I've seen, other people brought that up too.
My brain simply says:
`` "git-format-patch" is singular and so the SHA-1 specified
on the command line should generate a _single_ patch.''
Yeah, but no.
So I still make the mistake of:
# git-rev-list --no-merges --pretty=one-line HEAD -- <somepath>
I select a commit
# git-format-patch -o /tmp/ <commit>
...
Oh, f@#$! <CTRL-C>
# git-format-patch -o /tmp/ <commit>^..<commit>
Is there a chance to make "git-format-patch" output a single
patch? of that commit only?
Luben
P.S. And let "git-format-patches" go wild with the ideologies...
Sorry, needed to vent as I made this mistake twice already
today...
From: Jeff King <hidden> Date: 2016-08-11 19:41:45
On Fri, Nov 03, 2006 at 01:07:20AM -0800, Luben Tuikov wrote:
So I still make the mistake of:
# git-rev-list --no-merges --pretty=one-line HEAD -- <somepath>
I select a commit
# git-format-patch -o /tmp/ <commit>
...
Oh, f@#$! <CTRL-C>
# git-format-patch -o /tmp/ <commit>^..<commit>
For my own workflow, I don't want to have to pick the commit out of
rev-list (or log) output. I want to find it and hit a button to say "OK,
now mail this patch." So I put _all_ of my patches into an mbox, and
then browse them with mutt. Sort of a poor man's patch browser, but then
I'm ready to jump into mailing them immediately.
I use the following script:
#!/bin/sh
root=${1:-origin}
git-format-patch -s --stdout $root >.mbox
mutt -f .mbox
rm -f .mbox
And then in mutt, I use this macro to bind 'b' to editing the full
message w/ headers:
macro index b ":set edit_headers=yes<enter><resend-message>:set edit_headers=no<enter>"
I know that may be useless if you're not using mutt, but I just wanted
to stimulate some discussion among patch submitters about how they
actually do it. I'm not sure how configurable tig is, but it shouldn't
be too hard to add something like this to it.
For my own workflow, I don't want to have to pick the commit out of
rev-list (or log) output. I want to find it and hit a button to say "OK,
now mail this patch." So I put _all_ of my patches into an mbox, and
then browse them with mutt. Sort of a poor man's patch browser, but then
I'm ready to jump into mailing them immediately.
I use the following script:
#!/bin/sh
root=${1:-origin}
git-format-patch -s --stdout $root >.mbox
mutt -f .mbox
rm -f .mbox
And then in mutt, I use this macro to bind 'b' to editing the full
message w/ headers:
macro index b ":set edit_headers=yes<enter><resend-message>:set edit_headers=no<enter>"
I know that may be useless if you're not using mutt, but I just wanted
to stimulate some discussion among patch submitters about how they
actually do it. I'm not sure how configurable tig is, but it shouldn't
be too hard to add something like this to it.
Hi Luben,
reading the thread, it sounds like you have a couple of shells scripts
or aliases that do what you want already ;-)
Yeah, would you know it those scripts got lost somewhere. I now
know better -- branch off of git "next" and store in USB key. :-)
So I generally work off of "next" merged to my own branch which includes
extras I've collected along the way.
But what wouldn't I give to have
git-format-_patch_ -o /tmp/ <commit>
generate a _single_ patch just as its name implies...
Luben
On Fri, 3 Nov 2006 13:50:26 -0500
Jeff King [off-list ref] wrote:
For my own workflow, I don't want to have to pick the commit out of
rev-list (or log) output. I want to find it and hit a button to say "OK,
now mail this patch." So I put _all_ of my patches into an mbox, and
then browse them with mutt. Sort of a poor man's patch browser, but then
I'm ready to jump into mailing them immediately.
I use the following script:
#!/bin/sh
root=${1:-origin}
git-format-patch -s --stdout $root >.mbox
mutt -f .mbox
rm -f .mbox
If your mail setup support imap, the patches can be dumped directly into
it rather than having to go through an mbox. For instance you can have
something like this in your ~/.gitconfig:
[imap]
Host = imap.server.com
Folder = "Drafts"
User = uname
Pass = password
And then the above command line becomes:
git-format-patch -s --stdout $root | git-imap-send
To move all the patches into your imap drafts folder to be accessed
by whatever email client you use.
Sean
Hi Luben,
reading the thread, it sounds like you have a couple of shells scripts
or aliases that do what you want already ;-)
And for the scenario you mention, where upstream has taken some of
your patches... git-format-patch automatically tries to skip those.
Works well for me at least (ducks).