summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-11-16 07:07:49 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-11-16 07:07:49 (GMT)
commit1f9d282bd17ef6ccb791abeb34d36de503da9558 (patch)
tree36de085de0ab6c192e7bfc5a963d369783e55fb4
parent3ad12436a0d21f3379d936027caeca6ac73f24fa (diff)
parent1d46f2ea143534e46e6bfee3f34cd90b734bfe80 (diff)
downloadgit-1f9d282bd17ef6ccb791abeb34d36de503da9558.zip
git-1f9d282bd17ef6ccb791abeb34d36de503da9558.tar.gz
git-1f9d282bd17ef6ccb791abeb34d36de503da9558.tar.bz2
Merge branch 'jk/maint-format-patch-p-suppress-stat' into maint
* jk/maint-format-patch-p-suppress-stat: format-patch: make "-p" suppress diffstat
-rw-r--r--builtin-log.c9
-rwxr-xr-xt/t4014-format-patch.sh21
2 files changed, 28 insertions, 2 deletions
diff --git a/builtin-log.c b/builtin-log.c
index 25e21ed..7b91c91 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -891,6 +891,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
struct patch_ids ids;
char *add_signoff = NULL;
struct strbuf buf = STRBUF_INIT;
+ int use_patch_format = 0;
const struct option builtin_format_patch_options[] = {
{ OPTION_CALLBACK, 'n', "numbered", &numbered, NULL,
"use [PATCH n/m] even with a single patch",
@@ -920,6 +921,8 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
PARSE_OPT_NOARG | PARSE_OPT_NONEG, keep_callback },
OPT_BOOLEAN(0, "no-binary", &no_binary_diff,
"don't output binary diffs"),
+ OPT_BOOLEAN('p', NULL, &use_patch_format,
+ "show patch format instead of default (patch + stat)"),
OPT_BOOLEAN(0, "ignore-if-in-upstream", &ignore_if_in_upstream,
"don't include a patch matching a commit upstream"),
OPT_GROUP("Messaging"),
@@ -1027,8 +1030,10 @@ 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
- || rev.diffopt.output_format == DIFF_FORMAT_PATCH)
+ if (use_patch_format)
+ rev.diffopt.output_format |= DIFF_FORMAT_PATCH;
+ else 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 531f5b7..cab6ce2 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -455,6 +455,27 @@ test_expect_success 'format-patch respects -U' '
'
+cat > expect << EOF
+
+diff --git a/file b/file
+index 40f36c6..2dc5c23 100644
+--- a/file
++++ b/file
+@@ -14,3 +14,19 @@ C
+ D
+ E
+ F
++5
+EOF
+
+test_expect_success 'format-patch -p suppresses stat' '
+
+ git format-patch -p -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_expect_success 'format-patch from a subdirectory (1)' '
filename=$(
rm -rf sub &&