Re: [PATCH] Allow format-patch to create patches for merges
- From
Nathan W. Panike <nathan.panike@gmail.com>
- Date
- Jan 26, 2009, 16:27 UTC
- Message-ID
- <d77df1110901260827j2200fe41oe1b84c387d88aba@mail.gmail.com>
- In-Reply-To
- <alpine.DEB.1.00.0901261604420.25749@intel-tinevez-2-302>
On Mon, Jan 26, 2009 at 9:36 AM, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
Show 16 quoted lines
> Hi, > > On Mon, 26 Jan 2009, Nathan W. Panike wrote: > >> The behavior for git format-patch is to ignore merge commits, producing >> an empty patch. The code does not allow the user to change this >> behavior. This patch changes that behavior by allowing the user to >> specify -c or -m at the command line to produce a patch for a merge >> commit. > > Your patch is almost perfect, except that you > > - lack an explanation when this makes sense (format-patch is commonly used > for mail-based patch queues, and only -m 1 would make sense there, and > only if you run format-patch with --first-parent), >
I think I have an unusual workflow where my patch makes sense, although it probably does not for the vast majority of git users. I regularly use 3 machines: S, L, and H. I keep my work synchronized by using git. Normally, I fetch from S to L or to H, depending on which machine I am working on at the moment. I also push from L or H to S. I sporadically lose connectivity to S, so I have a hook in the repo on S to send a backup email to me on mail server M, which has a more reliable connection. This email also serves as a reminder when I have moved from one machine to another with a degree of latency; and I can use the mail queue on M to recreate most of my state, if I cannot fetch from S. In this workflow, I would really like git to create a patch, even in the merge case, and I think I want to see that it was a merge.
What I do not want to see is an empty patch when a non-trivial change has occurred, which is the way it works now.
Also, I think I must be issuing the wrong command, as when I do
git format-patch --first-parent --stdout -1 $merge_commit
there is no data, with or without my patch.
> - did not add your Sign-off :-)
Oops. Thanks for the catch.
Show 5 quoted lines
> > Ciao, > Dscho > >