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

Re: [PATCH v16 7/7] commit: add a commit.verbose config variable

From
Eric Sunshine <sunshine@sunshineco.com>
Date
May 6, 2016, 05:07 UTC
Message-ID
<CAPig+cR=W3z-7RgWJ5QF8gNMdR_XA8q++K9MDdfeL+BePoOwCw@mail.gmail.com>
In-Reply-To
<xmqqbn4kb9m1.fsf@gitster.mtv.corp.google.com>
On Thu, May 5, 2016 at 3:14 PM, Junio C Hamano <gitster@pobox.com> wrote:
Show 44 quoted lines
> Pranit Bauva <pranit.bauva@gmail.com> writes:
>> +static int config_verbose = -1; /* unspecified */
>
> The name does not make it clear that config_verbose is only for
> "commit" and not relevant to "status".
>
>> @@ -1364,6 +1366,8 @@ int cmd_status(int argc, const char **argv, const char *prefix)
>>                            builtin_status_usage, 0);
>>       finalize_colopts(&s.colopts, -1);
>>       finalize_deferred_config(&s);
>> +     if (verbose == -1)
>> +             verbose = 0;
>
> Mental note: cmd_status() does not use git_commit_config() but uses
> git_status_config(), hence config_verbose is not affected.  But
> because verbose is initialised to -1, the code needs to turn it off
> like this.
>
>> @@ -1664,6 +1673,9 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
>>       argc = parse_and_validate_options(argc, argv, builtin_commit_options,
>>                                         builtin_commit_usage,
>>                                         prefix, current_head, &s);
>> +     if (verbose == -1)
>> +             verbose = (config_verbose < 0) ? 0 : config_verbose;
>> +
>
> cmd_commit() does use git_commit_config(), and verbose is
> initialised -1, so without command line option, we fall back to
> config_verbose if it is set from the configuration.
>
> I wonder if the attached patch squashed into this commit makes
> things easier to understand, though.  The points are:
>
>  - We rename the configuration to make it clear that it is about
>    "commit" and does not apply to "status".
>
>  - We initialize verbose to 0 as before.  The only thing "git
>    status" cares about is if "--verbose" was given.  Giving it
>    "--no-verbose" or nothing should not make any difference.
>
>  - But we do need to stuff -1 to verbose in "git commit" before
>    handling the command line options, because the distinction
>    between having "--no-verbose" and not having any matter there,
>    and we do so in cmd_commit(), i.e. only place where it matters.

Hmm... if someday someone wants git-status to support a status.verbose config variable, with Pranit's current implementation, it's a pretty simple change: Just add to git_status_config():

    if (!strcmp(k, "status.verbose")) {
        int is_bool;
        config_verbose = git_config_bool_or_int(k, v, &is_bool);
        return 0;
    }
and in cmd_status() change:
    if (verbose == -1)
        verbose = 0;
to:
    if (verbose == -1)
        verbose = (config_verbose < 0) ? 0 : config_verbose;

It wouldn't be too hard with your proposal either: Either add a 'config_status_verbose' variable or rename 'config_commit_verbose' back to 'config_verbose', initialize the global 'verbose' to -1, drop the explicit 'verbose = -1' from cmd_commit(), and make the same changes shown for Pranit's version. The diff would be a bit noisier.

I do like that your proposal makes it more difficult for commit.verbose to break git-status, but otherwise don't feel that it is significantly better. So, I dunno...

Previous: Pranit BauvaNext: Junio C Hamano
Message 30 of 53 in “t0040-test-parse-options.sh: fix style issues”
  1. 1/7 t0040-test-parse-options.sh: fix style issuesPranit Bauva, Apr 30, 2016
  2. 2/7 test-parse-options: print quiet as integerPranit Bauva, Apr 30, 2016
  3. 3/7 t0040-parse-options: improve test coveragePranit Bauva, Apr 30, 2016
  4. Eric SunshineMay 4, 2016
  5. Pranit BauvaMay 5, 2016
  6. 4/7 parse-options.c: make OPTION_COUNTUP respect "unspecified" valuesPranit Bauva, Apr 30, 2016
  7. 5/7 t7507-commit-verbose: improve test coverage by testing number of diffsPranit Bauva, Apr 30, 2016
  8. 6/7 commit: add a commit.verbose config variablePranit Bauva, Apr 30, 2016
  9. 7/7 t/t7507: tests for broken behavior of statusPranit Bauva, Apr 30, 2016
  10. Junio C HamanoMay 2, 2016
  11. Pranit BauvaMay 3, 2016
  12. Eric SunshineMay 3, 2016
  13. Pranit BauvaMay 3, 2016
  14. Eric SunshineMay 3, 2016
  15. Pranit BauvaMay 3, 2016
  16. Eric SunshineMay 3, 2016
  17. Pranit BauvaMay 3, 2016
  18. Junio C HamanoMay 3, 2016
  19. 0/7 config commit verbosePranit Bauva, May 5, 2016
  20. 1/7 t0040-test-parse-options.sh: fix style issuesPranit Bauva, May 5, 2016
  21. 2/7 test-parse-options: print quiet as integerPranit Bauva, May 5, 2016
  22. 3/7 t0040-parse-options: improve test coveragePranit Bauva, May 5, 2016
  23. 4/7 t/t7507: improve test coveragePranit Bauva, May 5, 2016
  24. 5/7 parse-options.c: make OPTION_COUNTUP respect "unspecified" valuesPranit Bauva, May 5, 2016
  25. 6/7 t7507-commit-verbose: improve test coverage by testing number of diffsPranit Bauva, May 5, 2016
  26. 7/7 commit: add a commit.verbose config variablePranit Bauva, May 5, 2016
  27. Junio C HamanoMay 5, 2016
  28. Pranit BauvaMay 6, 2016
  29. Pranit BauvaMay 6, 2016
  30. Eric SunshineMay 6, 2016
  31. Junio C HamanoMay 5, 2016
  32. 0/3 test-parse-options updateJunio C Hamano, May 5, 2016
  33. 1/3 test-parse-options: fix output when callback option failsJunio C Hamano, May 5, 2016
  34. 2/3 test-parse-options: hold output in a strbufJunio C Hamano, May 5, 2016
  35. 3/3 test-parse-options: --expect=<string> option to simplify testsJunio C Hamano, May 5, 2016
  36. Stefan BellerMay 6, 2016
  37. Eric SunshineMay 6, 2016
  38. Junio C HamanoMay 6, 2016
  39. Stefan BellerMay 6, 2016
  40. Junio C HamanoMay 6, 2016
  41. Junio C HamanoMay 6, 2016
  42. t0040: remove unused test helpersJunio C Hamano, May 6, 2016
  43. Eric SunshineMay 6, 2016
  44. SZEDER GáborMay 6, 2016
  45. Junio C HamanoMay 6, 2016
  46. Jeff KingMay 7, 2016
  47. Ævar Arnfjörð BjarmasonMay 7, 2016
  48. Junio C HamanoMay 8, 2016
  49. Jeff KingMay 9, 2016
  50. Junio C HamanoMay 9, 2016
  51. Pranit BauvaMay 6, 2016
  52. Ævar Arnfjörð BjarmasonMay 6, 2016
  53. Junio C HamanoMay 6, 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.