From: Caleb Thompson <cjaysson@gmail.com>
To: git@vger.kernel.org
Cc: James P Howard II <jh@jameshoward.us>, Jeff King <peff@peff.net>,
Jeremiah Mahler <jmmahler@gmail.com>,
Duy Nguyen <pclouds@gmail.com>
Subject: [PATCH v2] commit: support commit.verbose and --no-verbose
Date: Sun, 25 May 2014 01:24:27 -0500 [thread overview]
Message-ID: <20140525062427.GA94219@sirius.att.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 5047 bytes --]
Incorporated changes from Duy Nguyen and Jeremiah Mahler.
Jeremiah, I didn't make the changes about `<<-EOF` or `test_expect_success`
because I'm guessing that keeping the local style of the code intact is more
important than using those. Do you think it makes sense to refactor the rest of
the test file (t/t7507-commit-verbose.sh) to use those? I could also change the
other `git config` calls to use `test_config`.
Duy, you were right about `-V`. Do you know of a simple way to add that
shortened flag? `OPT_BOOL('v', "verbose", ...)` gives me `-v`, `--verbose`, and
`--no-verbose`, but no `-V` as a shortened form of `--no-verbose`.
commit 1a49356b87c9028e68e731f34790c11a3075f736
Author: Caleb Thompson <caleb@calebthompson.io>
Date: Fri May 23 11:47:44 2014 -0500
commit: support commit.verbose and --no-verbose
Add a new configuration variable commit.verbose to implicitly pass
`--verbose` to `git-commit`. Add `--no-verbose` to commit to negate that
setting.
Signed-off-by: Caleb Thompson <caleb@calebthompson.io>
Reviewed-by: Duy Nguyen <pclouds@gmail.com>
Reviewed-by: Jeremiah Mahler <jmmahler@gmail.com>
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 1932e9b..a245928 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -1009,6 +1009,11 @@ commit.template::
"`~/`" is expanded to the value of `$HOME` and "`~user/`" to the
specified user's home directory.
+commit.verbose::
+ A boolean to enable/disable inclusion of diff information in the
+ commit message template when using an editor to prepare the commit
+ message. Defaults to false.
+
credential.helper::
Specify an external helper to be called when a username or
password credential is needed; the helper may consult external
diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
index 0bbc8f5..d7b50e2 100644
--- a/Documentation/git-commit.txt
+++ b/Documentation/git-commit.txt
@@ -282,7 +282,13 @@ configuration variable documented in linkgit:git-config[1].
Show unified diff between the HEAD commit and what
would be committed at the bottom of the commit message
template. Note that this diff output doesn't have its
- lines prefixed with '#'.
+ lines prefixed with '#'. The `commit.verbose` configuration
+ variable can be set to true to implicitly send this option.
+
+--no-verbose::
+ Do not show the unified diff at the bottom of the commit message
+ template. This is the default behavior, but can be used to override
+ the`commit.verbose` configuration variable.
-q::
--quiet::
diff --git a/builtin/commit.c b/builtin/commit.c
index 9cfef6c..7978d7f 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1417,6 +1417,10 @@ static int git_commit_config(const char *k, const char *v, void *cb)
sign_commit = git_config_bool(k, v) ? "" : NULL;
return 0;
}
+ if (!strcmp(k, "commit.verbose")) {
+ verbose = git_config_bool(k, v);
+ return 0;
+ }
status = git_gpg_config(k, v, NULL);
if (status)
@@ -1484,7 +1488,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
static struct wt_status s;
static struct option builtin_commit_options[] = {
OPT__QUIET(&quiet, N_("suppress summary after successful commit")),
- OPT__VERBOSE(&verbose, N_("show diff in commit message template")),
+ OPT_BOOL('v', "verbose", &verbose, N_("show diff in commit message template")),
OPT_GROUP(N_("Commit message options")),
OPT_FILENAME('F', "file", &logfile, N_("read message from file")),
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 2c59a76..b8f4b94 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1976,6 +1976,7 @@ _git_config ()
color.ui
commit.status
commit.template
+ commit.verbose
core.abbrev
core.askpass
core.attributesfile
diff --git a/t/t7507-commit-verbose.sh b/t/t7507-commit-verbose.sh
index 2ddf28c..bea5d88 100755
--- a/t/t7507-commit-verbose.sh
+++ b/t/t7507-commit-verbose.sh
@@ -10,6 +10,12 @@ EOF
chmod +x check-for-diff
test_set_editor "$PWD/check-for-diff"
+cat >check-for-no-diff <<EOF
+#!$SHELL_PATH
+exec grep -v '^diff --git' "\$1"
+EOF
+chmod +x check-for-no-diff
+
cat >message <<'EOF'
subject
@@ -48,6 +54,21 @@ test_expect_success 'verbose diff is stripped out (mnemonicprefix)' '
check_message message
'
+test_expect_success 'commit shows verbose diff with set commit.verbose' '
+ echo morecontent >file &&
+ git add file &&
+ test_config commit.verbose true &&
+ check_message message
+'
+
+test_expect_success 'commit does not show verbose diff with --no-verbose' '
+ echo morecontent >file &&
+ git add file &&
+ test_config commit.verbose true &&
+ test_set_editor "$PWD/check-for-no-diff" &&
+ git commit --amend --no-verbose
+'
+
cat >diff <<'EOF'
This is an example commit message that contains a diff.
[-- Attachment #2: Type: application/pgp-signature, Size: 473 bytes --]
next reply other threads:[~2014-05-25 6:24 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-25 6:24 Caleb Thompson [this message]
2014-05-25 7:02 ` [PATCH v2] commit: support commit.verbose and --no-verbose Jeremiah Mahler
2014-05-25 7:44 ` Jeremiah Mahler
2014-05-25 8:44 ` Duy Nguyen
2014-05-25 10:23 ` Eric Sunshine
2014-05-26 18:56 ` [PATCH v3 0/5] " Caleb Thompson
2014-05-26 18:56 ` [PATCH v3 1/5] commit test: Use test_config instead of git-config Caleb Thompson
2014-05-26 18:56 ` [PATCH v3 2/5] commit test: Change $PWD to $(pwd) Caleb Thompson
2014-05-27 5:46 ` Johannes Sixt
2014-05-27 6:10 ` Eric Sunshine
2014-05-27 6:14 ` Jeremiah Mahler
2014-05-27 6:34 ` Johannes Sixt
2014-05-27 7:35 ` David Kastrup
2014-05-26 18:56 ` [PATCH v3 3/5] commit test: Use write_script Caleb Thompson
2014-05-27 22:30 ` Eric Sunshine
2014-05-27 22:42 ` Junio C Hamano
2014-05-26 18:56 ` [PATCH v3 4/5] commit test: test_set_editor in each test Caleb Thompson
2014-05-27 22:59 ` Eric Sunshine
2014-05-26 18:56 ` [PATCH v3 5/5] commit: support commit.verbose and --no-verbose Caleb Thompson
2014-05-26 20:33 ` Jeremiah Mahler
2014-05-26 20:47 ` Caleb Thompson
[not found] ` <CA+g4mq8iGNVm-2Uj8j2bJLDazaTS_U76BO9-jeS9Aw4RZnki5A@mail.gmail.com>
2014-05-26 21:00 ` Jeremiah Mahler
2014-05-26 22:14 ` Jeremiah Mahler
2014-05-26 22:34 ` [PATCH v3 0/5] " Jeremiah Mahler
2014-05-26 22:40 ` Caleb Thompson
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=20140525062427.GA94219@sirius.att.net \
--to=cjaysson@gmail.com \
--cc=git@vger.kernel.org \
--cc=jh@jameshoward.us \
--cc=jmmahler@gmail.com \
--cc=pclouds@gmail.com \
--cc=peff@peff.net \
/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).