summaryrefslogtreecommitdiff
path: root/t/t4047-diff-dirstat.sh
diff options
context:
space:
mode:
authorMårten Kongstad <marten.kongstad@gmail.com>2015-03-02 16:05:39 +0100
committerJunio C Hamano <gitster@pobox.com>2015-03-02 11:31:27 -0800
commitab27389affc78a521fe44fc25518e1d11a4fc433 (patch)
treef4e2bd8937198745c42fa1083f6ea2d6c8a9ee01 /t/t4047-diff-dirstat.sh
parent282616c72d1d08a77ca4fe1186cb708c38408d87 (diff)
downloadgit-ab27389affc78a521fe44fc25518e1d11a4fc433.tar.gz
diff --shortstat --dirstat: remove duplicate outputmk/diff-shortstat-dirstat-fix
When --shortstat is used in conjunction with --dirstat=changes, git diff will output the dirstat information twice: first as calculated by the 'lines' algorithm, then as calculated by the 'changes' algorithm: $ git diff --dirstat=changes,10 --shortstat v2.2.0..v2.2.1 23 files changed, 453 insertions(+), 54 deletions(-) 33.5% Documentation/RelNotes/ 26.2% t/ 46.6% Documentation/RelNotes/ 16.6% t/ The same duplication happens for --shortstat together with --dirstat=files, but not for --shortstat together with --dirstat=lines. Limit output to only include one dirstat part, calculated as specified by the --dirstat parameter. Also, add test for this. Signed-off-by: Mårten Kongstad <marten.kongstad@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4047-diff-dirstat.sh')
-rwxr-xr-xt/t4047-diff-dirstat.sh14
1 files changed, 14 insertions, 0 deletions
diff --git a/t/t4047-diff-dirstat.sh b/t/t4047-diff-dirstat.sh
index ed7e093366..0d50dce97e 100755
--- a/t/t4047-diff-dirstat.sh
+++ b/t/t4047-diff-dirstat.sh
@@ -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