mirror of
https://github.com/git/git.git
synced 2024-11-23 18:05:29 +08:00
blame: add blame.showEmail configuration
Complement existing --show-email option with fallback configuration variable, with tests. Signed-off-by: Quentin Neill <quentin.neill@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3d4a3ffe64
commit
8b504db309
@ -76,6 +76,8 @@ include::blame-options.txt[]
|
||||
-e::
|
||||
--show-email::
|
||||
Show the author email instead of author name (Default: off).
|
||||
This can also be controlled via the `blame.showEmail` config
|
||||
option.
|
||||
|
||||
-w::
|
||||
Ignore whitespace when comparing the parent's version and
|
||||
|
@ -2185,6 +2185,14 @@ static int git_blame_config(const char *var, const char *value, void *cb)
|
||||
blank_boundary = git_config_bool(var, value);
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(var, "blame.showemail")) {
|
||||
int *output_option = cb;
|
||||
if (git_config_bool(var, value))
|
||||
*output_option |= OUTPUT_SHOW_EMAIL;
|
||||
else
|
||||
*output_option &= ~OUTPUT_SHOW_EMAIL;
|
||||
return 0;
|
||||
}
|
||||
if (!strcmp(var, "blame.date")) {
|
||||
if (!value)
|
||||
return config_error_nonbool(var);
|
||||
@ -2528,7 +2536,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix)
|
||||
unsigned int range_i;
|
||||
long anchor;
|
||||
|
||||
git_config(git_blame_config, NULL);
|
||||
git_config(git_blame_config, &output_option);
|
||||
init_revisions(&revs, NULL);
|
||||
revs.date_mode = blame_date_mode;
|
||||
DIFF_OPT_SET(&revs.diffopt, ALLOW_TEXTCONV);
|
||||
|
@ -19,4 +19,66 @@ test_expect_success 'blame --show-email' '
|
||||
"<E at test dot git>" 1
|
||||
'
|
||||
|
||||
test_expect_success 'setup showEmail tests' '
|
||||
echo "bin: test number 1" >one &&
|
||||
git add one &&
|
||||
GIT_AUTHOR_NAME=name1 \
|
||||
GIT_AUTHOR_EMAIL=email1@test.git \
|
||||
git commit -m First --date="2010-01-01 01:00:00" &&
|
||||
cat >expected_n <<-\EOF &&
|
||||
(name1 2010-01-01 01:00:00 +0000 1) bin: test number 1
|
||||
EOF
|
||||
cat >expected_e <<-\EOF
|
||||
(<email1@test.git> 2010-01-01 01:00:00 +0000 1) bin: test number 1
|
||||
EOF
|
||||
'
|
||||
|
||||
find_blame () {
|
||||
sed -e 's/^[^(]*//'
|
||||
}
|
||||
|
||||
test_expect_success 'blame with no options and no config' '
|
||||
git blame one >blame &&
|
||||
find_blame <blame >result &&
|
||||
test_cmp expected_n result
|
||||
'
|
||||
|
||||
test_expect_success 'blame with showemail options' '
|
||||
git blame --show-email one >blame1 &&
|
||||
find_blame <blame1 >result &&
|
||||
test_cmp expected_e result &&
|
||||
git blame -e one >blame2 &&
|
||||
find_blame <blame2 >result &&
|
||||
test_cmp expected_e result &&
|
||||
git blame --no-show-email one >blame3 &&
|
||||
find_blame <blame3 >result &&
|
||||
test_cmp expected_n result
|
||||
'
|
||||
|
||||
test_expect_success 'blame with showEmail config false' '
|
||||
git config blame.showEmail false &&
|
||||
git blame one >blame1 &&
|
||||
find_blame <blame1 >result &&
|
||||
test_cmp expected_n result &&
|
||||
git blame --show-email one >blame2 &&
|
||||
find_blame <blame2 >result &&
|
||||
test_cmp expected_e result &&
|
||||
git blame -e one >blame3 &&
|
||||
find_blame <blame3 >result &&
|
||||
test_cmp expected_e result &&
|
||||
git blame --no-show-email one >blame4 &&
|
||||
find_blame <blame4 >result &&
|
||||
test_cmp expected_n result
|
||||
'
|
||||
|
||||
test_expect_success 'blame with showEmail config true' '
|
||||
git config blame.showEmail true &&
|
||||
git blame one >blame1 &&
|
||||
find_blame <blame1 >result &&
|
||||
test_cmp expected_e result &&
|
||||
git blame --no-show-email one >blame2 &&
|
||||
find_blame <blame2 >result &&
|
||||
test_cmp expected_n result
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user