mirror of
https://github.com/git/git
synced 2024-10-06 00:29:28 +00:00
commit: add a commit.verbose config variable
Add commit.verbose configuration variable as a convenience for those who always prefer --verbose. Add tests to check the behavior introduced by this commit and also to verify that behavior of status doesn't break because of this commit. Helped-by: Junio C Hamano <gitster@pobox.com> Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
de45dbb818
commit
aaab84203b
|
@ -1110,6 +1110,10 @@ commit.template::
|
||||||
"`~/`" is expanded to the value of `$HOME` and "`~user/`" to the
|
"`~/`" is expanded to the value of `$HOME` and "`~user/`" to the
|
||||||
specified user's home directory.
|
specified user's home directory.
|
||||||
|
|
||||||
|
commit.verbose::
|
||||||
|
A boolean or int to specify the level of verbose with `git commit`.
|
||||||
|
See linkgit:git-commit[1].
|
||||||
|
|
||||||
credential.helper::
|
credential.helper::
|
||||||
Specify an external helper to be called when a username or
|
Specify an external helper to be called when a username or
|
||||||
password credential is needed; the helper may consult external
|
password credential is needed; the helper may consult external
|
||||||
|
|
|
@ -290,7 +290,8 @@ configuration variable documented in linkgit:git-config[1].
|
||||||
what changes the commit has.
|
what changes the commit has.
|
||||||
Note that this diff output doesn't have its
|
Note that this diff output doesn't have its
|
||||||
lines prefixed with '#'. This diff will not be a part
|
lines prefixed with '#'. This diff will not be a part
|
||||||
of the commit message.
|
of the commit message. See the `commit.verbose` configuration
|
||||||
|
variable in linkgit:git-config[1].
|
||||||
+
|
+
|
||||||
If specified twice, show in addition the unified diff between
|
If specified twice, show in addition the unified diff between
|
||||||
what would be committed and the worktree files, i.e. the unstaged
|
what would be committed and the worktree files, i.e. the unstaged
|
||||||
|
|
|
@ -114,6 +114,7 @@ static char *fixup_message, *squash_message;
|
||||||
static int all, also, interactive, patch_interactive, only, amend, signoff;
|
static int all, also, interactive, patch_interactive, only, amend, signoff;
|
||||||
static int edit_flag = -1; /* unspecified */
|
static int edit_flag = -1; /* unspecified */
|
||||||
static int quiet, verbose, 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 int no_post_rewrite, allow_empty_message;
|
||||||
static char *untracked_files_arg, *force_date, *ignore_submodule_arg;
|
static char *untracked_files_arg, *force_date, *ignore_submodule_arg;
|
||||||
static char *sign_commit;
|
static char *sign_commit;
|
||||||
|
@ -1515,6 +1516,11 @@ static int git_commit_config(const char *k, const char *v, void *cb)
|
||||||
sign_commit = git_config_bool(k, v) ? "" : NULL;
|
sign_commit = git_config_bool(k, v) ? "" : NULL;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
if (!strcmp(k, "commit.verbose")) {
|
||||||
|
int is_bool;
|
||||||
|
config_commit_verbose = git_config_bool_or_int(k, v, &is_bool);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
status = git_gpg_config(k, v, NULL);
|
status = git_gpg_config(k, v, NULL);
|
||||||
if (status)
|
if (status)
|
||||||
|
@ -1661,9 +1667,13 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
|
||||||
if (parse_commit(current_head))
|
if (parse_commit(current_head))
|
||||||
die(_("could not parse HEAD commit"));
|
die(_("could not parse HEAD commit"));
|
||||||
}
|
}
|
||||||
|
verbose = -1; /* unspecified */
|
||||||
argc = parse_and_validate_options(argc, argv, builtin_commit_options,
|
argc = parse_and_validate_options(argc, argv, builtin_commit_options,
|
||||||
builtin_commit_usage,
|
builtin_commit_usage,
|
||||||
prefix, current_head, &s);
|
prefix, current_head, &s);
|
||||||
|
if (verbose == -1)
|
||||||
|
verbose = (config_commit_verbose < 0) ? 0 : config_commit_verbose;
|
||||||
|
|
||||||
if (dry_run)
|
if (dry_run)
|
||||||
return dry_run_commit(argc, argv, prefix, current_head, &s);
|
return dry_run_commit(argc, argv, prefix, current_head, &s);
|
||||||
index_file = prepare_index(argc, argv, prefix, current_head, 0);
|
index_file = prepare_index(argc, argv, prefix, current_head, 0);
|
||||||
|
|
|
@ -103,4 +103,55 @@ test_expect_success 'status does not verbose without --verbose' '
|
||||||
! grep "^diff --git" actual
|
! grep "^diff --git" actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'setup -v -v' '
|
||||||
|
echo dirty >file
|
||||||
|
'
|
||||||
|
|
||||||
|
for i in true 1
|
||||||
|
do
|
||||||
|
test_expect_success "commit.verbose=$i and --verbose omitted" "
|
||||||
|
git -c commit.verbose=$i commit --amend &&
|
||||||
|
test_line_count = 1 out
|
||||||
|
"
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in false -2 -1 0
|
||||||
|
do
|
||||||
|
test_expect_success "commit.verbose=$i and --verbose omitted" "
|
||||||
|
git -c commit.verbose=$i commit --amend &&
|
||||||
|
test_line_count = 0 out
|
||||||
|
"
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in 2 3
|
||||||
|
do
|
||||||
|
test_expect_success "commit.verbose=$i and --verbose omitted" "
|
||||||
|
git -c commit.verbose=$i commit --amend &&
|
||||||
|
test_line_count = 2 out
|
||||||
|
"
|
||||||
|
done
|
||||||
|
|
||||||
|
for i in true false -2 -1 0 1 2 3
|
||||||
|
do
|
||||||
|
test_expect_success "commit.verbose=$i and --verbose" "
|
||||||
|
git -c commit.verbose=$i commit --amend --verbose &&
|
||||||
|
test_line_count = 1 out
|
||||||
|
"
|
||||||
|
|
||||||
|
test_expect_success "commit.verbose=$i and --no-verbose" "
|
||||||
|
git -c commit.verbose=$i commit --amend --no-verbose &&
|
||||||
|
test_line_count = 0 out
|
||||||
|
"
|
||||||
|
|
||||||
|
test_expect_success "commit.verbose=$i and -v -v" "
|
||||||
|
git -c commit.verbose=$i commit --amend -v -v &&
|
||||||
|
test_line_count = 2 out
|
||||||
|
"
|
||||||
|
done
|
||||||
|
|
||||||
|
test_expect_success "status ignores commit.verbose=true" '
|
||||||
|
git -c commit.verbose=true status >actual &&
|
||||||
|
! grep "^diff --git actual"
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Loading…
Reference in a new issue