builtin/reflog: respect user config in "write" subcommand
The reflog write recognizes only GIT_COMMITTER_NAME and GIT_COMMITTER_EMAIL environment variables, but forgot to honor the user.name and user.email configuration variables, due to lack of repo_config() call to grab these values from the configuration files. The test suite sets these variables, so this behavior was unnoticed. Ensure that the reflog write also uses the values of user.name and user.email if set in the Git configuration. Co-authored-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Michael Lohmann <git@lohmann.sh> Signed-off-by: Junio C Hamano <gitster@pobox.com>next
parent
465eff81de
commit
4a72736d19
|
@ -415,6 +415,8 @@ static int cmd_reflog_write(int argc, const char **argv, const char *prefix,
|
|||
const char *ref, *message;
|
||||
int ret;
|
||||
|
||||
repo_config(repo, git_ident_config, NULL);
|
||||
|
||||
argc = parse_options(argc, argv, prefix, options, reflog_write_usage, 0);
|
||||
if (argc != 4)
|
||||
usage_with_options(reflog_write_usage, options);
|
||||
|
|
|
@ -108,6 +108,42 @@ test_expect_success 'simple writes' '
|
|||
)
|
||||
'
|
||||
|
||||
test_expect_success 'uses user.name and user.email config' '
|
||||
test_when_finished "rm -rf repo" &&
|
||||
git init repo &&
|
||||
(
|
||||
cd repo &&
|
||||
test_commit initial &&
|
||||
COMMIT_OID=$(git rev-parse HEAD) &&
|
||||
|
||||
sane_unset GIT_COMMITTER_NAME &&
|
||||
sane_unset GIT_COMMITTER_EMAIL &&
|
||||
git config --local user.name "Author" &&
|
||||
git config --local user.email "a@uth.or" &&
|
||||
git reflog write refs/heads/something $ZERO_OID $COMMIT_OID first &&
|
||||
test_reflog_matches . refs/heads/something <<-EOF
|
||||
$ZERO_OID $COMMIT_OID Author <a@uth.or> $GIT_COMMITTER_DATE first
|
||||
EOF
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'environment variables take precedence over config' '
|
||||
test_when_finished "rm -rf repo" &&
|
||||
git init repo &&
|
||||
(
|
||||
cd repo &&
|
||||
test_commit initial &&
|
||||
COMMIT_OID=$(git rev-parse HEAD) &&
|
||||
|
||||
git config --local user.name "Author" &&
|
||||
git config --local user.email "a@uth.or" &&
|
||||
git reflog write refs/heads/something $ZERO_OID $COMMIT_OID first &&
|
||||
test_reflog_matches . refs/heads/something <<-EOF
|
||||
$ZERO_OID $COMMIT_OID $SIGNATURE first
|
||||
EOF
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'can write to root ref' '
|
||||
test_when_finished "rm -rf repo" &&
|
||||
git init repo &&
|
||||
|
|
Loading…
Reference in New Issue