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
Junio C Hamano <gitster@pobox.com>
Date
May 5, 2016, 19:14 UTC
Message-ID
<xmqqbn4kb9m1.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<1462441802-4768-8-git-send-email-pranit.bauva@gmail.com>
Pranit Bauva <pranit.bauva@gmail.com> writes:
Show 12 quoted lines
> diff --git a/builtin/commit.c b/builtin/commit.c
> index 391126e..114ffc9 100644
> --- a/builtin/commit.c
> +++ b/builtin/commit.c
> @@ -113,7 +113,9 @@ static char *edit_message, *use_message;
>  static char *fixup_message, *squash_message;
>  static int all, also, interactive, patch_interactive, only, amend, signoff;
>  static int edit_flag = -1; /* unspecified */
> -static int quiet, verbose, no_verify, allow_empty, dry_run, renew_authorship;
> +static int config_verbose = -1; /* unspecified */
> +static int verbose = -1; /* unspecified */
> +static int quiet, no_verify, allow_empty, dry_run, renew_authorship;

The name does not make it clear that config_verbose is only for "commit" and not relevant to "status".

Show 6 quoted lines
> @@ -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.

Show 7 quoted lines
> @@ -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.
 builtin/commit.c | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)
diff --git a/builtin/commit.c b/builtin/commit.c
index 583d1e3..a486620 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -113,9 +113,8 @@ static char *edit_message, *use_message;
 static char *fixup_message, *squash_message;
 static int all, also, interactive, patch_interactive, only, amend, signoff;
 static int edit_flag = -1; /* unspecified */
-static int config_verbose = -1; /* unspecified */
-static int verbose = -1; /* unspecified */
-static int quiet, no_verify, allow_empty, dry_run, renew_authorship;
+static int quiet, verbose, no_verify, allow_empty, dry_run, renew_authorship;
+static int config_commit_verbose = -1; /* unspecified */
 static int no_post_rewrite, allow_empty_message;
 static char *untracked_files_arg, *force_date, *ignore_submodule_arg;
 static char *sign_commit;
@@ -1366,8 +1365,6 @@ 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;
 
 	handle_untracked_files_arg(&s);
 	if (show_ignored_in_status)
@@ -1521,7 +1518,7 @@ static int git_commit_config(const char *k, const char *v, void *cb)
 	}
 	if (!strcmp(k, "commit.verbose")) {
 		int is_bool;
-		config_verbose = git_config_bool_or_int(k, v, &is_bool);
+		config_commit_verbose = git_config_bool_or_int(k, v, &is_bool);
 		return 0;
 	}
 
@@ -1670,11 +1667,12 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
 		if (parse_commit(current_head))
 			die(_("could not parse HEAD commit"));
 	}
+	verbose = -1; /* unspecified */
 	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;
+		verbose = (config_commit_verbose < 0) ? 0 : config_commit_verbose;
 
 	if (dry_run)
 		return dry_run_commit(argc, argv, prefix, current_head, &s);
Previous: Pranit BauvaNext: Pranit Bauva
Message 27 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.