From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: [PATCH] format-patch: use default diff format even with patch options
Date: Sun, 24 Aug 2008 22:10:29 -0400 [thread overview]
Message-ID: <20080825021029.GA28355@coredump.intra.peff.net> (raw)
In-Reply-To: <20080825013837.GA17201@coredump.intra.peff.net>
On Sun, Aug 24, 2008 at 09:38:37PM -0400, Jeff King wrote:
> This was generated with -U5 to make the first hunk easier to read.
And while doing that, I detected another bug. Or maybe a feature,
depending on your perspective.
-- >8 --
format-patch: use default diff format even with patch options
Previously, running "git format-patch -U5" would cause the
low-level diff machinery to change the diff output format
from "not specified" to "patch". This meant that
format-patch thought we explicitly specified a diff output
format, and would not use the default format. The resulting
message lacked both the diffstat and the summary, as well as
the separating "---".
Now format-patch explicitly checks for this condition and
uses the default. That means that "git format-patch -p" will
now have the "-p" ignored.
Signed-off-by: Jeff King <peff@peff.net>
---
Maybe this is intentional, and that by asking for "-U" I am explicitly
saying "I really want the patch format, not the default." But I think
this more reasonably maps to what the user expects.
I am a little uncomfortable hurting anyone who thought that
"format-patch -p" was a good idea. OTOH:
1. I have to question why they were using format-patch in the first
place. Probably git-log --pretty=email would be a better fit.
2. Their mails were already broken, since the presence of the diffstat
is what triggers the "---" divider.
builtin-log.c | 3 ++-
t/t4014-format-patch.sh | 25 +++++++++++++++++++++++++
2 files changed, 27 insertions(+), 1 deletions(-)
diff --git a/builtin-log.c b/builtin-log.c
index 9204ffd..1d3c5cb 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -932,7 +932,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
if (argc > 1)
die ("unrecognized argument: %s", argv[1]);
- if (!rev.diffopt.output_format)
+ if (!rev.diffopt.output_format
+ || rev.diffopt.output_format == DIFF_FORMAT_PATCH)
rev.diffopt.output_format = DIFF_FORMAT_DIFFSTAT | DIFF_FORMAT_SUMMARY | DIFF_FORMAT_PATCH;
if (!DIFF_OPT_TST(&rev.diffopt, TEXT) && !no_binary_diff)
diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 7fe853c..9d99dc2 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -230,4 +230,29 @@ test_expect_success 'shortlog of cover-letter wraps overly-long onelines' '
'
+cat > expect << EOF
+---
+ file | 16 ++++++++++++++++
+ 1 files changed, 16 insertions(+), 0 deletions(-)
+
+diff --git a/file b/file
+index 40f36c6..2dc5c23 100644
+--- a/file
++++ b/file
+@@ -13,4 +13,20 @@ C
+ 10
+ D
+ E
+ F
++5
+EOF
+
+test_expect_success 'format-patch respects -U' '
+
+ git format-patch -U4 -2 &&
+ sed -e "1,/^$/d" -e "/^+5/q" < 0001-This-is-an-excessively-long-subject-line-for-a-messa.patch > output &&
+ test_cmp expect output
+
+'
+
test_done
--
1.6.0.150.gc3242.dirty
next prev parent reply other threads:[~2008-08-25 2:12 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-21 9:19 [PATCH] allow user aliases for the --author parameter Michael J Gruber
2008-08-21 13:49 ` Miklos Vajna
2008-08-21 14:30 ` Michael J Gruber
2008-08-21 17:41 ` Alex Riesen
2008-08-21 17:49 ` Alex Riesen
2008-08-21 20:02 ` Jeff King
2008-08-22 6:09 ` Junio C Hamano
2008-08-22 8:27 ` Michael J Gruber
2008-08-22 16:50 ` Jeff King
2008-08-22 21:09 ` Junio C Hamano
2008-08-22 21:19 ` Jeff King
2008-08-26 8:02 ` [PATCH v2] " Michael J Gruber
2008-08-26 23:31 ` Junio C Hamano
2008-08-27 0:19 ` Jeff King
2008-08-27 6:13 ` Junio C Hamano
2008-08-27 9:36 ` Michael J Gruber
2008-08-27 12:40 ` Jeff King
[not found] ` <20080827123656.GB11986@coredump.intra.peff.net>
[not found] ` <7vmyiyqt08.fsf@gitster.siamese.dyndns.org>
2008-08-27 17:18 ` Jeff King
2008-08-28 8:53 ` Michael J Gruber
2008-08-28 21:33 ` Jeff King
[not found] ` <7vr68aqt3h.fsf@gitster.siamese.dyndns.org>
[not found] ` <48B65922.4050005@fastmail.fm>
2008-08-28 21:36 ` Jeff King
2008-08-27 12:29 ` Jeff King
2008-08-27 17:19 ` Junio C Hamano
2008-08-24 9:19 ` [PATCH] " Pedro Melo
2008-08-24 17:21 ` Jeff King
2008-08-25 1:38 ` [PATCH] fix "git log -i --grep" Jeff King
2008-08-25 2:10 ` Jeff King [this message]
2008-08-25 4:57 ` [PATCH] format-patch: use default diff format even with patch options Junio C Hamano
2008-08-25 5:12 ` [PATCH] fix "git log -i --grep" Junio C Hamano
2008-08-25 6:15 ` Jeff King
2008-08-25 6:18 ` Jeff King
2008-08-25 6:27 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080825021029.GA28355@coredump.intra.peff.net \
--to=peff@peff.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).