From: Jim Meyering <meyering@redhat.com>
To: git list <git@vger.kernel.org>
Cc: "Stephen C. Tweedie" <sct@redhat.com>
Subject: [PATCH] format-patch let -k override a config-specified format.numbered
Date: Thu, 07 May 2009 18:31:07 +0200 [thread overview]
Message-ID: <8763gcri2c.fsf@meyering.net> (raw)
Let a command-line --keep-subject (-k) override a config-specified
format.numbered (--numbered (-n)), rather than provoking the
"-n and -k are mutually exclusive" failure.
* t4021-format-patch-numbered.sh: Test for the above
---
Here's a quick demo of the problem:
$ git config format.numbered true
$ git format-patch --stdout -1 -k > /dev/null
fatal: -n and -k are mutually exclusive.
This started when a colleague reported that "git rebase master" was failing
with a "fatal: -n and -k are mutually exclusive". Stephen Tweedie discovered
that it was due to the format.numbered=true setting in ~/.gitconfig
conflicting with the -k of the format-patch command run as part of
the rebase operation. Here's a fix.
Stephen suggested an alternate patch in which rather than adding a
new variable, you'd use "numbered = -1" to indicate that the setting
originated in config. Let me know if you'd prefer that.
builtin-log.c | 14 +++++++++++++-
t/t4021-format-patch-numbered.sh | 7 +++++++
2 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/builtin-log.c b/builtin-log.c
index 5eaec5d..f10cfeb 100644
--- a/builtin-log.c
+++ b/builtin-log.c
@@ -755,6 +755,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
int cover_letter = 0;
int boundary_count = 0;
int no_binary_diff = 0;
+ int numbered_cmdline_opt = 0;
struct commit *origin = NULL, *head = NULL;
const char *in_reply_to = NULL;
struct patch_ids ids;
@@ -786,8 +787,10 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
if (!strcmp(argv[i], "--stdout"))
use_stdout = 1;
else if (!strcmp(argv[i], "-n") ||
- !strcmp(argv[i], "--numbered"))
+ !strcmp(argv[i], "--numbered")) {
numbered = 1;
+ numbered_cmdline_opt = 1;
+ }
else if (!strcmp(argv[i], "-N") ||
!strcmp(argv[i], "--no-numbered")) {
numbered = 0;
@@ -918,6 +921,15 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
if (start_number < 0)
start_number = 1;
+
+ /*
+ * If numbered is set solely due to format.numbered in config,
+ * and it would conflict with --keep-subject (-k) from the
+ * command line, reset "numbered".
+ */
+ if (numbered && keep_subject && !numbered_cmdline_opt)
+ numbered = 0;
+
if (numbered && keep_subject)
die ("-n and -k are mutually exclusive.");
if (keep_subject && subject_prefix)
diff --git a/t/t4021-format-patch-numbered.sh b/t/t4021-format-patch-numbered.sh
index 390af23..9b6e1be 100755
--- a/t/t4021-format-patch-numbered.sh
+++ b/t/t4021-format-patch-numbered.sh
@@ -86,6 +86,13 @@ test_expect_success 'format.numbered && --no-numbered' '
'
+test_expect_success 'format.numbered && --keep-subject' '
+
+ git format-patch --keep-subject --stdout HEAD^ >patch4a &&
+ grep "^Subject: Third" patch4a
+
+'
+
test_expect_success 'format.numbered = auto' '
git config format.numbered auto
--
1.6.3.195.gad81
next reply other threads:[~2009-05-07 16:32 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-07 16:31 Jim Meyering [this message]
2009-05-08 1:03 ` [PATCH] format-patch let -k override a config-specified format.numbered Stephen Boyd
2009-05-09 7:08 ` Junio C Hamano
2009-05-09 8:12 ` Jim Meyering
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=8763gcri2c.fsf@meyering.net \
--to=meyering@redhat.com \
--cc=git@vger.kernel.org \
--cc=sct@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.