зеркало из https://github.com/microsoft/git.git
Merge branch 'mk/diff-shortstat-dirstat-fix'
"git diff --shortstat --dirstat=changes" showed a dirstat based on lines that was never asked by the end user in addition to the dirstat that the user asked for. * mk/diff-shortstat-dirstat-fix: diff --shortstat --dirstat: remove duplicate output
This commit is contained in:
Коммит
b6488fe191
2
diff.c
2
diff.c
|
@ -4541,7 +4541,7 @@ void diff_flush(struct diff_options *options)
|
|||
show_stats(&diffstat, options);
|
||||
if (output_format & DIFF_FORMAT_SHORTSTAT)
|
||||
show_shortstats(&diffstat, options);
|
||||
if (output_format & DIFF_FORMAT_DIRSTAT)
|
||||
if (output_format & DIFF_FORMAT_DIRSTAT && dirstat_by_line)
|
||||
show_dirstat_by_line(&diffstat, options);
|
||||
free_diffstat_info(&diffstat);
|
||||
separator++;
|
||||
|
|
|
@ -973,4 +973,18 @@ test_expect_success 'diff.dirstat=future_param,0,lines should warn, but still wo
|
|||
test_i18ngrep -q "diff\\.dirstat" actual_error
|
||||
'
|
||||
|
||||
test_expect_success '--shortstat --dirstat should output only one dirstat' '
|
||||
git diff --shortstat --dirstat=changes HEAD^..HEAD >out &&
|
||||
grep " dst/copy/changed/$" out >actual_diff_shortstat_dirstat_changes &&
|
||||
test_line_count = 1 actual_diff_shortstat_dirstat_changes &&
|
||||
|
||||
git diff --shortstat --dirstat=lines HEAD^..HEAD >out &&
|
||||
grep " dst/copy/changed/$" out >actual_diff_shortstat_dirstat_lines &&
|
||||
test_line_count = 1 actual_diff_shortstat_dirstat_lines &&
|
||||
|
||||
git diff --shortstat --dirstat=files HEAD^..HEAD >out &&
|
||||
grep " dst/copy/changed/$" out >actual_diff_shortstat_dirstat_files &&
|
||||
test_line_count = 1 actual_diff_shortstat_dirstat_files
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче