git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4] commit: add a commit.verbose config variable

From
Eric Sunshine <sunshine@sunshineco.com>
Date
Mar 10, 2016, 23:01 UTC
Message-ID
<CAPig+cT+dmD2Nxw7z+x0Q2z_aJQFMwRwnb=dn1uH-_Nt9tnk4Q@mail.gmail.com>
In-Reply-To
<0102015362963f6a-626ad27e-e705-4a75-93a6-55a5f75d0226-000000@eu-west-1.amazonses.com>
On Thu, Mar 10, 2016 at 5:12 PM, Pranit Bauva <pranit.bauva@gmail.com> wrote:
> Since many people always run the command with this option, it would be
> preferrable to specify it in the configuration file instead of passing
> the option with `git commit` again and again.
Perhaps drop the unsubstantiated "many people always" and just say:
    Add commit.verbose configuration variable as a convenience
    for those who always prefer --verbose.
or something.
> Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com>
> ---

As a convenience to reviewers, please use this area below the "---" line to provide links and explain what changed since the previous round rather than doing so in a separate email.

Show 8 quoted lines
> diff --git a/Documentation/git-commit.txt b/Documentation/git-commit.txt
> @@ -290,7 +290,8 @@ configuration variable documented in linkgit:git-config[1].
>         what changes the commit has.
>         Note that this diff output doesn't have its
>         lines prefixed with '#'. This diff will not be a part
> -       of the commit message.
> +       of the commit message. To activate this option permanently, the
> +       configuration variable `commit.verbose` can be set to true.
The "permanently" bit sounds scary. A more concise way to state this might be:
    See the `commit.verbose` configuration variable in
    linkgit:git-config[1].

which doesn't bother spelling out what the intelligent reader should infer from the reference.

Show 6 quoted lines
> diff --git a/builtin/commit.c b/builtin/commit.c
> @@ -1505,6 +1505,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")){
Style: space before {
Show 12 quoted lines
> +               verbose = git_config_bool(k, v);
> +               return 0;
> +       }
>
>         status = git_gpg_config(k, v, NULL);
>         if (status)
> diff --git a/t/t7507-commit-verbose.sh b/t/t7507-commit-verbose.sh
> @@ -96,4 +96,52 @@ test_expect_success 'verbose diff is stripped out with set core.commentChar' '
>         test_i18ngrep "Aborting commit due to empty commit message." err
>  '
>
> +test_expect_success 'commit with commit.verbose true and no arguments' '

"no arguments" doesn't convey much; how about "--verbose omitted" or something? Ditto for the titles of other tests.

Show 10 quoted lines
> +       echo content >file &&
> +       git add file &&
> +       test_config commit.verbose true &&
> +       (
> +               GIT_EDITOR=cat &&
> +               export GIT_EDITOR &&
> +               test_must_fail git commit >output
> +       ) &&
> +       test_i18ngrep "diff --git" output
> +'

Making git-commit fail unconditionally with "aborting due to empty commit message" is a rather sneaky way to perform this test. I would have expected to see these new tests re-use the existing machinery provided by this script (the check-for-diff "editor") rather than inventing an entirely new and unintuitive mechanism. Doing so would also reduce the size of each new test.

More below...
Show 35 quoted lines
> +test_expect_success 'commit with commit.verbose true and --no-verbose' '
> +       echo content >file &&
> +       git add file &&
> +       test_config commit.verbose true &&
> +       (
> +               GIT_EDITOR=cat &&
> +               export GIT_EDITOR &&
> +               test_must_fail git commit --no-verbose >output
> +       ) &&
> +       ! test_i18ngrep "diff --git" output
> +'
> +
> +test_expect_success 'commit with commit.verbose false and -v' '
> +       echo content >file &&
> +       git add file &&
> +       test_config commit.verbose false &&
> +       (
> +               GIT_EDITOR=cat &&
> +               export GIT_EDITOR &&
> +               test_must_fail git commit -v >output
> +       ) &&
> +       test_i18ngrep "diff --git" output
> +'
> +
> +test_expect_success 'commit with commit.verbose false no arguments' '
> +       echo content >file &&
> +       git add file &&
> +       test_config commit.verbose false &&
> +       (
> +               GIT_EDITOR=cat &&
> +               export GIT_EDITOR &&
> +               test_must_fail git commit >output
> +       ) &&
> +       ! test_i18ngrep "diff --git" output
> +'
Some additional tests[1][2] are probably warranted.

[1]: http://article.gmane.org/gmane.comp.version-control.git/288648 [2]: http://article.gmane.org/gmane.comp.version-control.git/288657

> +
>  test_done
Previous: Pranit BauvaNext: Pranit Bauva
Message 5 of 13 in “commit: add a commit.verbose config variable”
  1. commit: add a commit.verbose config variablePranit Bauva, Mar 10, 2016
  2. Pranit BauvaMar 10, 2016
  3. Junio C HamanoMar 10, 2016
  4. Pranit BauvaMar 10, 2016
  5. Eric SunshineMar 10, 2016
  6. Pranit BauvaMar 11, 2016
  7. Eric SunshineMar 11, 2016
  8. Pranit BauvaMar 11, 2016
  9. Roberto TyleyMar 11, 2016
  10. Philip OakleyMar 11, 2016
  11. t/t7502 : drop duplicate testPranit Bauva, Mar 11, 2016
  12. Pranit BauvaMar 11, 2016
  13. Junio C HamanoMar 11, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.