Browse Source
* jh/dirstat-lines: Mark dirstat error messages for translation Improve error handling when parsing dirstat parameters New --dirstat=lines mode, doing dirstat analysis based on diffstat Allow specifying --dirstat cut-off percentage as a floating point number Add config variable for specifying default --dirstat behavior Refactor --dirstat parsing; deprecate --cumulative and --dirstat-by-file Make --dirstat=0 output directories that contribute < 0.1% of changes Add several testcases for --dirstat and friendsmaint

5 changed files with 1219 additions and 32 deletions
@ -0,0 +1,979 @@
@@ -0,0 +1,979 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='diff --dirstat tests' |
||||
. ./test-lib.sh |
||||
|
||||
# set up two commits where the second commit has these files |
||||
# (10 lines in each file): |
||||
# |
||||
# unchanged/text (unchanged from 1st commit) |
||||
# changed/text (changed 1st line) |
||||
# rearranged/text (swapped 1st and 2nd line) |
||||
# dst/copy/unchanged/text (copied from src/copy/unchanged/text, unchanged) |
||||
# dst/copy/changed/text (copied from src/copy/changed/text, changed) |
||||
# dst/copy/rearranged/text (copied from src/copy/rearranged/text, rearranged) |
||||
# dst/move/unchanged/text (moved from src/move/unchanged/text, unchanged) |
||||
# dst/move/changed/text (moved from src/move/changed/text, changed) |
||||
# dst/move/rearranged/text (moved from src/move/rearranged/text, rearranged) |
||||
|
||||
test_expect_success 'setup' ' |
||||
mkdir unchanged && |
||||
mkdir changed && |
||||
mkdir rearranged && |
||||
mkdir src && |
||||
mkdir src/copy && |
||||
mkdir src/copy/unchanged && |
||||
mkdir src/copy/changed && |
||||
mkdir src/copy/rearranged && |
||||
mkdir src/move && |
||||
mkdir src/move/unchanged && |
||||
mkdir src/move/changed && |
||||
mkdir src/move/rearranged && |
||||
cat <<EOF >unchanged/text && |
||||
unchanged line #0 |
||||
unchanged line #1 |
||||
unchanged line #2 |
||||
unchanged line #3 |
||||
unchanged line #4 |
||||
unchanged line #5 |
||||
unchanged line #6 |
||||
unchanged line #7 |
||||
unchanged line #8 |
||||
unchanged line #9 |
||||
EOF |
||||
cat <<EOF >changed/text && |
||||
changed line #0 |
||||
changed line #1 |
||||
changed line #2 |
||||
changed line #3 |
||||
changed line #4 |
||||
changed line #5 |
||||
changed line #6 |
||||
changed line #7 |
||||
changed line #8 |
||||
changed line #9 |
||||
EOF |
||||
cat <<EOF >rearranged/text && |
||||
rearranged line #0 |
||||
rearranged line #1 |
||||
rearranged line #2 |
||||
rearranged line #3 |
||||
rearranged line #4 |
||||
rearranged line #5 |
||||
rearranged line #6 |
||||
rearranged line #7 |
||||
rearranged line #8 |
||||
rearranged line #9 |
||||
EOF |
||||
cat <<EOF >src/copy/unchanged/text && |
||||
copy unchanged line #0 |
||||
copy unchanged line #1 |
||||
copy unchanged line #2 |
||||
copy unchanged line #3 |
||||
copy unchanged line #4 |
||||
copy unchanged line #5 |
||||
copy unchanged line #6 |
||||
copy unchanged line #7 |
||||
copy unchanged line #8 |
||||
copy unchanged line #9 |
||||
EOF |
||||
cat <<EOF >src/copy/changed/text && |
||||
copy changed line #0 |
||||
copy changed line #1 |
||||
copy changed line #2 |
||||
copy changed line #3 |
||||
copy changed line #4 |
||||
copy changed line #5 |
||||
copy changed line #6 |
||||
copy changed line #7 |
||||
copy changed line #8 |
||||
copy changed line #9 |
||||
EOF |
||||
cat <<EOF >src/copy/rearranged/text && |
||||
copy rearranged line #0 |
||||
copy rearranged line #1 |
||||
copy rearranged line #2 |
||||
copy rearranged line #3 |
||||
copy rearranged line #4 |
||||
copy rearranged line #5 |
||||
copy rearranged line #6 |
||||
copy rearranged line #7 |
||||
copy rearranged line #8 |
||||
copy rearranged line #9 |
||||
EOF |
||||
cat <<EOF >src/move/unchanged/text && |
||||
move unchanged line #0 |
||||
move unchanged line #1 |
||||
move unchanged line #2 |
||||
move unchanged line #3 |
||||
move unchanged line #4 |
||||
move unchanged line #5 |
||||
move unchanged line #6 |
||||
move unchanged line #7 |
||||
move unchanged line #8 |
||||
move unchanged line #9 |
||||
EOF |
||||
cat <<EOF >src/move/changed/text && |
||||
move changed line #0 |
||||
move changed line #1 |
||||
move changed line #2 |
||||
move changed line #3 |
||||
move changed line #4 |
||||
move changed line #5 |
||||
move changed line #6 |
||||
move changed line #7 |
||||
move changed line #8 |
||||
move changed line #9 |
||||
EOF |
||||
cat <<EOF >src/move/rearranged/text && |
||||
move rearranged line #0 |
||||
move rearranged line #1 |
||||
move rearranged line #2 |
||||
move rearranged line #3 |
||||
move rearranged line #4 |
||||
move rearranged line #5 |
||||
move rearranged line #6 |
||||
move rearranged line #7 |
||||
move rearranged line #8 |
||||
move rearranged line #9 |
||||
EOF |
||||
git add . && |
||||
git commit -m "initial" && |
||||
mkdir dst && |
||||
mkdir dst/copy && |
||||
mkdir dst/copy/unchanged && |
||||
mkdir dst/copy/changed && |
||||
mkdir dst/copy/rearranged && |
||||
mkdir dst/move && |
||||
mkdir dst/move/unchanged && |
||||
mkdir dst/move/changed && |
||||
mkdir dst/move/rearranged && |
||||
cat <<EOF >changed/text && |
||||
CHANGED XXXXXXX line #0 |
||||
changed line #1 |
||||
changed line #2 |
||||
changed line #3 |
||||
changed line #4 |
||||
changed line #5 |
||||
changed line #6 |
||||
changed line #7 |
||||
changed line #8 |
||||
changed line #9 |
||||
EOF |
||||
cat <<EOF >rearranged/text && |
||||
rearranged line #1 |
||||
rearranged line #0 |
||||
rearranged line #2 |
||||
rearranged line #3 |
||||
rearranged line #4 |
||||
rearranged line #5 |
||||
rearranged line #6 |
||||
rearranged line #7 |
||||
rearranged line #8 |
||||
rearranged line #9 |
||||
EOF |
||||
cat <<EOF >dst/copy/unchanged/text && |
||||
copy unchanged line #0 |
||||
copy unchanged line #1 |
||||
copy unchanged line #2 |
||||
copy unchanged line #3 |
||||
copy unchanged line #4 |
||||
copy unchanged line #5 |
||||
copy unchanged line #6 |
||||
copy unchanged line #7 |
||||
copy unchanged line #8 |
||||
copy unchanged line #9 |
||||
EOF |
||||
cat <<EOF >dst/copy/changed/text && |
||||
copy XXXCHANGED line #0 |
||||
copy changed line #1 |
||||
copy changed line #2 |
||||
copy changed line #3 |
||||
copy changed line #4 |
||||
copy changed line #5 |
||||
copy changed line #6 |
||||
copy changed line #7 |
||||
copy changed line #8 |
||||
copy changed line #9 |
||||
EOF |
||||
cat <<EOF >dst/copy/rearranged/text && |
||||
copy rearranged line #1 |
||||
copy rearranged line #0 |
||||
copy rearranged line #2 |
||||
copy rearranged line #3 |
||||
copy rearranged line #4 |
||||
copy rearranged line #5 |
||||
copy rearranged line #6 |
||||
copy rearranged line #7 |
||||
copy rearranged line #8 |
||||
copy rearranged line #9 |
||||
EOF |
||||
cat <<EOF >dst/move/unchanged/text && |
||||
move unchanged line #0 |
||||
move unchanged line #1 |
||||
move unchanged line #2 |
||||
move unchanged line #3 |
||||
move unchanged line #4 |
||||
move unchanged line #5 |
||||
move unchanged line #6 |
||||
move unchanged line #7 |
||||
move unchanged line #8 |
||||
move unchanged line #9 |
||||
EOF |
||||
cat <<EOF >dst/move/changed/text && |
||||
move XXXCHANGED line #0 |
||||
move changed line #1 |
||||
move changed line #2 |
||||
move changed line #3 |
||||
move changed line #4 |
||||
move changed line #5 |
||||
move changed line #6 |
||||
move changed line #7 |
||||
move changed line #8 |
||||
move changed line #9 |
||||
EOF |
||||
cat <<EOF >dst/move/rearranged/text && |
||||
move rearranged line #1 |
||||
move rearranged line #0 |
||||
move rearranged line #2 |
||||
move rearranged line #3 |
||||
move rearranged line #4 |
||||
move rearranged line #5 |
||||
move rearranged line #6 |
||||
move rearranged line #7 |
||||
move rearranged line #8 |
||||
move rearranged line #9 |
||||
EOF |
||||
git add . && |
||||
git rm -r src/move/unchanged && |
||||
git rm -r src/move/changed && |
||||
git rm -r src/move/rearranged && |
||||
git commit -m "changes" |
||||
' |
||||
|
||||
cat <<EOF >expect_diff_stat |
||||
changed/text | 2 +- |
||||
dst/copy/changed/text | 10 ++++++++++ |
||||
dst/copy/rearranged/text | 10 ++++++++++ |
||||
dst/copy/unchanged/text | 10 ++++++++++ |
||||
dst/move/changed/text | 10 ++++++++++ |
||||
dst/move/rearranged/text | 10 ++++++++++ |
||||
dst/move/unchanged/text | 10 ++++++++++ |
||||
rearranged/text | 2 +- |
||||
src/move/changed/text | 10 ---------- |
||||
src/move/rearranged/text | 10 ---------- |
||||
src/move/unchanged/text | 10 ---------- |
||||
11 files changed, 62 insertions(+), 32 deletions(-) |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_stat_M |
||||
changed/text | 2 +- |
||||
dst/copy/changed/text | 10 ++++++++++ |
||||
dst/copy/rearranged/text | 10 ++++++++++ |
||||
dst/copy/unchanged/text | 10 ++++++++++ |
||||
{src => dst}/move/changed/text | 2 +- |
||||
{src => dst}/move/rearranged/text | 2 +- |
||||
{src => dst}/move/unchanged/text | 0 |
||||
rearranged/text | 2 +- |
||||
8 files changed, 34 insertions(+), 4 deletions(-) |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_stat_CC |
||||
changed/text | 2 +- |
||||
{src => dst}/copy/changed/text | 2 +- |
||||
{src => dst}/copy/rearranged/text | 2 +- |
||||
{src => dst}/copy/unchanged/text | 0 |
||||
{src => dst}/move/changed/text | 2 +- |
||||
{src => dst}/move/rearranged/text | 2 +- |
||||
{src => dst}/move/unchanged/text | 0 |
||||
rearranged/text | 2 +- |
||||
8 files changed, 6 insertions(+), 6 deletions(-) |
||||
EOF |
||||
|
||||
test_expect_success 'sanity check setup (--stat)' ' |
||||
git diff --stat HEAD^..HEAD >actual_diff_stat && |
||||
test_cmp expect_diff_stat actual_diff_stat && |
||||
git diff --stat -M HEAD^..HEAD >actual_diff_stat_M && |
||||
test_cmp expect_diff_stat_M actual_diff_stat_M && |
||||
git diff --stat -C -C HEAD^..HEAD >actual_diff_stat_CC && |
||||
test_cmp expect_diff_stat_CC actual_diff_stat_CC |
||||
' |
||||
|
||||
# changed/text and rearranged/text falls below default 3% threshold |
||||
cat <<EOF >expect_diff_dirstat |
||||
10.8% dst/copy/changed/ |
||||
10.8% dst/copy/rearranged/ |
||||
10.8% dst/copy/unchanged/ |
||||
10.8% dst/move/changed/ |
||||
10.8% dst/move/rearranged/ |
||||
10.8% dst/move/unchanged/ |
||||
10.8% src/move/changed/ |
||||
10.8% src/move/rearranged/ |
||||
10.8% src/move/unchanged/ |
||||
EOF |
||||
|
||||
# rearranged/text falls below default 3% threshold |
||||
cat <<EOF >expect_diff_dirstat_M |
||||
5.8% changed/ |
||||
29.3% dst/copy/changed/ |
||||
29.3% dst/copy/rearranged/ |
||||
29.3% dst/copy/unchanged/ |
||||
5.8% dst/move/changed/ |
||||
EOF |
||||
|
||||
# rearranged/text falls below default 3% threshold |
||||
cat <<EOF >expect_diff_dirstat_CC |
||||
32.6% changed/ |
||||
32.6% dst/copy/changed/ |
||||
32.6% dst/move/changed/ |
||||
EOF |
||||
|
||||
test_expect_success 'various ways to misspell --dirstat' ' |
||||
test_must_fail git show --dirstat10 && |
||||
test_must_fail git show --dirstat10,files && |
||||
test_must_fail git show -X=20 && |
||||
test_must_fail git show -X=20,cumulative |
||||
' |
||||
|
||||
test_expect_success 'vanilla --dirstat' ' |
||||
git diff --dirstat HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'vanilla -X' ' |
||||
git diff -X HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff -X -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff -X -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'explicit defaults: --dirstat=changes,noncumulative,3' ' |
||||
git diff --dirstat=changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'explicit defaults: -Xchanges,noncumulative,3' ' |
||||
git diff -Xchanges,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff -Xchanges,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff -Xchanges,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'later options override earlier options:' ' |
||||
git diff --dirstat=files,10,cumulative,changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=files,10,cumulative,changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=files,10,cumulative,changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
git diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=files --dirstat=10 --dirstat=cumulative --dirstat=changes --dirstat=noncumulative -X3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'non-defaults in config overridden by explicit defaults on command line' ' |
||||
git -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
cat <<EOF >expect_diff_dirstat |
||||
2.1% changed/ |
||||
10.8% dst/copy/changed/ |
||||
10.8% dst/copy/rearranged/ |
||||
10.8% dst/copy/unchanged/ |
||||
10.8% dst/move/changed/ |
||||
10.8% dst/move/rearranged/ |
||||
10.8% dst/move/unchanged/ |
||||
0.0% rearranged/ |
||||
10.8% src/move/changed/ |
||||
10.8% src/move/rearranged/ |
||||
10.8% src/move/unchanged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_M |
||||
5.8% changed/ |
||||
29.3% dst/copy/changed/ |
||||
29.3% dst/copy/rearranged/ |
||||
29.3% dst/copy/unchanged/ |
||||
5.8% dst/move/changed/ |
||||
0.1% dst/move/rearranged/ |
||||
0.1% rearranged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_CC |
||||
32.6% changed/ |
||||
32.6% dst/copy/changed/ |
||||
0.6% dst/copy/rearranged/ |
||||
32.6% dst/move/changed/ |
||||
0.6% dst/move/rearranged/ |
||||
0.6% rearranged/ |
||||
EOF |
||||
|
||||
test_expect_success '--dirstat=0' ' |
||||
git diff --dirstat=0 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=0 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success '-X0' ' |
||||
git diff -X0 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff -X0 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff -X0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=0' ' |
||||
git -c diff.dirstat=0 diff --dirstat HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=0 diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=0 diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
cat <<EOF >expect_diff_dirstat |
||||
2.1% changed/ |
||||
10.8% dst/copy/changed/ |
||||
10.8% dst/copy/rearranged/ |
||||
10.8% dst/copy/unchanged/ |
||||
32.5% dst/copy/ |
||||
10.8% dst/move/changed/ |
||||
10.8% dst/move/rearranged/ |
||||
10.8% dst/move/unchanged/ |
||||
32.5% dst/move/ |
||||
65.1% dst/ |
||||
0.0% rearranged/ |
||||
10.8% src/move/changed/ |
||||
10.8% src/move/rearranged/ |
||||
10.8% src/move/unchanged/ |
||||
32.5% src/move/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_M |
||||
5.8% changed/ |
||||
29.3% dst/copy/changed/ |
||||
29.3% dst/copy/rearranged/ |
||||
29.3% dst/copy/unchanged/ |
||||
88.0% dst/copy/ |
||||
5.8% dst/move/changed/ |
||||
0.1% dst/move/rearranged/ |
||||
5.9% dst/move/ |
||||
94.0% dst/ |
||||
0.1% rearranged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_CC |
||||
32.6% changed/ |
||||
32.6% dst/copy/changed/ |
||||
0.6% dst/copy/rearranged/ |
||||
33.3% dst/copy/ |
||||
32.6% dst/move/changed/ |
||||
0.6% dst/move/rearranged/ |
||||
33.3% dst/move/ |
||||
66.6% dst/ |
||||
0.6% rearranged/ |
||||
EOF |
||||
|
||||
test_expect_success '--dirstat=0 --cumulative' ' |
||||
git diff --dirstat=0 --cumulative HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=0 --cumulative -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=0 --cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success '--dirstat=0,cumulative' ' |
||||
git diff --dirstat=0,cumulative HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=0,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=0,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success '-X0,cumulative' ' |
||||
git diff -X0,cumulative HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff -X0,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff -X0,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=0,cumulative' ' |
||||
git -c diff.dirstat=0,cumulative diff --dirstat HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=0,cumulative diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=0,cumulative diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=0 & --dirstat=cumulative' ' |
||||
git -c diff.dirstat=0 diff --dirstat=cumulative HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=0 diff --dirstat=cumulative -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=0 diff --dirstat=cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
cat <<EOF >expect_diff_dirstat |
||||
9.0% changed/ |
||||
9.0% dst/copy/changed/ |
||||
9.0% dst/copy/rearranged/ |
||||
9.0% dst/copy/unchanged/ |
||||
9.0% dst/move/changed/ |
||||
9.0% dst/move/rearranged/ |
||||
9.0% dst/move/unchanged/ |
||||
9.0% rearranged/ |
||||
9.0% src/move/changed/ |
||||
9.0% src/move/rearranged/ |
||||
9.0% src/move/unchanged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_M |
||||
14.2% changed/ |
||||
14.2% dst/copy/changed/ |
||||
14.2% dst/copy/rearranged/ |
||||
14.2% dst/copy/unchanged/ |
||||
14.2% dst/move/changed/ |
||||
14.2% dst/move/rearranged/ |
||||
14.2% rearranged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_CC |
||||
16.6% changed/ |
||||
16.6% dst/copy/changed/ |
||||
16.6% dst/copy/rearranged/ |
||||
16.6% dst/move/changed/ |
||||
16.6% dst/move/rearranged/ |
||||
16.6% rearranged/ |
||||
EOF |
||||
|
||||
test_expect_success '--dirstat-by-file' ' |
||||
git diff --dirstat-by-file HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat-by-file -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat-by-file -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success '--dirstat=files' ' |
||||
git diff --dirstat=files HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=files -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=files -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=files' ' |
||||
git -c diff.dirstat=files diff --dirstat HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
cat <<EOF >expect_diff_dirstat |
||||
27.2% dst/copy/ |
||||
27.2% dst/move/ |
||||
27.2% src/move/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_M |
||||
14.2% changed/ |
||||
14.2% dst/copy/changed/ |
||||
14.2% dst/copy/rearranged/ |
||||
14.2% dst/copy/unchanged/ |
||||
14.2% dst/move/changed/ |
||||
14.2% dst/move/rearranged/ |
||||
14.2% rearranged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_CC |
||||
16.6% changed/ |
||||
16.6% dst/copy/changed/ |
||||
16.6% dst/copy/rearranged/ |
||||
16.6% dst/move/changed/ |
||||
16.6% dst/move/rearranged/ |
||||
16.6% rearranged/ |
||||
EOF |
||||
|
||||
test_expect_success '--dirstat-by-file=10' ' |
||||
git diff --dirstat-by-file=10 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat-by-file=10 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat-by-file=10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success '--dirstat=files,10' ' |
||||
git diff --dirstat=files,10 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=files,10 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=files,10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=10,files' ' |
||||
git -c diff.dirstat=10,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=10,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=10,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
cat <<EOF >expect_diff_dirstat |
||||
9.0% changed/ |
||||
9.0% dst/copy/changed/ |
||||
9.0% dst/copy/rearranged/ |
||||
9.0% dst/copy/unchanged/ |
||||
27.2% dst/copy/ |
||||
9.0% dst/move/changed/ |
||||
9.0% dst/move/rearranged/ |
||||
9.0% dst/move/unchanged/ |
||||
27.2% dst/move/ |
||||
54.5% dst/ |
||||
9.0% rearranged/ |
||||
9.0% src/move/changed/ |
||||
9.0% src/move/rearranged/ |
||||
9.0% src/move/unchanged/ |
||||
27.2% src/move/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_M |
||||
14.2% changed/ |
||||
14.2% dst/copy/changed/ |
||||
14.2% dst/copy/rearranged/ |
||||
14.2% dst/copy/unchanged/ |
||||
42.8% dst/copy/ |
||||
14.2% dst/move/changed/ |
||||
14.2% dst/move/rearranged/ |
||||
28.5% dst/move/ |
||||
71.4% dst/ |
||||
14.2% rearranged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_CC |
||||
16.6% changed/ |
||||
16.6% dst/copy/changed/ |
||||
16.6% dst/copy/rearranged/ |
||||
33.3% dst/copy/ |
||||
16.6% dst/move/changed/ |
||||
16.6% dst/move/rearranged/ |
||||
33.3% dst/move/ |
||||
66.6% dst/ |
||||
16.6% rearranged/ |
||||
EOF |
||||
|
||||
test_expect_success '--dirstat-by-file --cumulative' ' |
||||
git diff --dirstat-by-file --cumulative HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat-by-file --cumulative -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat-by-file --cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success '--dirstat=files,cumulative' ' |
||||
git diff --dirstat=files,cumulative HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=files,cumulative -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=files,cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=cumulative,files' ' |
||||
git -c diff.dirstat=cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
cat <<EOF >expect_diff_dirstat |
||||
27.2% dst/copy/ |
||||
27.2% dst/move/ |
||||
54.5% dst/ |
||||
27.2% src/move/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_M |
||||
14.2% changed/ |
||||
14.2% dst/copy/changed/ |
||||
14.2% dst/copy/rearranged/ |
||||
14.2% dst/copy/unchanged/ |
||||
42.8% dst/copy/ |
||||
14.2% dst/move/changed/ |
||||
14.2% dst/move/rearranged/ |
||||
28.5% dst/move/ |
||||
71.4% dst/ |
||||
14.2% rearranged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_CC |
||||
16.6% changed/ |
||||
16.6% dst/copy/changed/ |
||||
16.6% dst/copy/rearranged/ |
||||
33.3% dst/copy/ |
||||
16.6% dst/move/changed/ |
||||
16.6% dst/move/rearranged/ |
||||
33.3% dst/move/ |
||||
66.6% dst/ |
||||
16.6% rearranged/ |
||||
EOF |
||||
|
||||
test_expect_success '--dirstat=files,cumulative,10' ' |
||||
git diff --dirstat=files,cumulative,10 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=files,cumulative,10 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=files,cumulative,10 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=10,cumulative,files' ' |
||||
git -c diff.dirstat=10,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=10,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=10,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
cat <<EOF >expect_diff_dirstat |
||||
27.2% dst/copy/ |
||||
27.2% dst/move/ |
||||
54.5% dst/ |
||||
27.2% src/move/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_M |
||||
42.8% dst/copy/ |
||||
28.5% dst/move/ |
||||
71.4% dst/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_CC |
||||
33.3% dst/copy/ |
||||
33.3% dst/move/ |
||||
66.6% dst/ |
||||
EOF |
||||
|
||||
test_expect_success '--dirstat=files,cumulative,16.7' ' |
||||
git diff --dirstat=files,cumulative,16.7 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=files,cumulative,16.7 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=files,cumulative,16.7 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=16.7,cumulative,files' ' |
||||
git -c diff.dirstat=16.7,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=16.7,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=16.7,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=16.70,cumulative,files' ' |
||||
git -c diff.dirstat=16.70,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=16.70,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=16.70,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success '--dirstat=files,cumulative,27.2' ' |
||||
git diff --dirstat=files,cumulative,27.2 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=files,cumulative,27.2 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=files,cumulative,27.2 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success '--dirstat=files,cumulative,27.09' ' |
||||
git diff --dirstat=files,cumulative,27.09 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=files,cumulative,27.09 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=files,cumulative,27.09 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
cat <<EOF >expect_diff_dirstat |
||||
10.6% dst/copy/changed/ |
||||
10.6% dst/copy/rearranged/ |
||||
10.6% dst/copy/unchanged/ |
||||
10.6% dst/move/changed/ |
||||
10.6% dst/move/rearranged/ |
||||
10.6% dst/move/unchanged/ |
||||
10.6% src/move/changed/ |
||||
10.6% src/move/rearranged/ |
||||
10.6% src/move/unchanged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_M |
||||
5.2% changed/ |
||||
26.3% dst/copy/changed/ |
||||
26.3% dst/copy/rearranged/ |
||||
26.3% dst/copy/unchanged/ |
||||
5.2% dst/move/changed/ |
||||
5.2% dst/move/rearranged/ |
||||
5.2% rearranged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_CC |
||||
16.6% changed/ |
||||
16.6% dst/copy/changed/ |
||||
16.6% dst/copy/rearranged/ |
||||
16.6% dst/move/changed/ |
||||
16.6% dst/move/rearranged/ |
||||
16.6% rearranged/ |
||||
EOF |
||||
|
||||
test_expect_success '--dirstat=lines' ' |
||||
git diff --dirstat=lines HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=lines -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=lines -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=lines' ' |
||||
git -c diff.dirstat=lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
cat <<EOF >expect_diff_dirstat |
||||
2.1% changed/ |
||||
10.6% dst/copy/changed/ |
||||
10.6% dst/copy/rearranged/ |
||||
10.6% dst/copy/unchanged/ |
||||
10.6% dst/move/changed/ |
||||
10.6% dst/move/rearranged/ |
||||
10.6% dst/move/unchanged/ |
||||
2.1% rearranged/ |
||||
10.6% src/move/changed/ |
||||
10.6% src/move/rearranged/ |
||||
10.6% src/move/unchanged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_M |
||||
5.2% changed/ |
||||
26.3% dst/copy/changed/ |
||||
26.3% dst/copy/rearranged/ |
||||
26.3% dst/copy/unchanged/ |
||||
5.2% dst/move/changed/ |
||||
5.2% dst/move/rearranged/ |
||||
5.2% rearranged/ |
||||
EOF |
||||
|
||||
cat <<EOF >expect_diff_dirstat_CC |
||||
16.6% changed/ |
||||
16.6% dst/copy/changed/ |
||||
16.6% dst/copy/rearranged/ |
||||
16.6% dst/move/changed/ |
||||
16.6% dst/move/rearranged/ |
||||
16.6% rearranged/ |
||||
EOF |
||||
|
||||
test_expect_success '--dirstat=lines,0' ' |
||||
git diff --dirstat=lines,0 HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git diff --dirstat=lines,0 -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git diff --dirstat=lines,0 -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=0,lines' ' |
||||
git -c diff.dirstat=0,lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
git -c diff.dirstat=0,lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
git -c diff.dirstat=0,lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC |
||||
' |
||||
|
||||
test_expect_success '--dirstat=future_param,lines,0 should fail loudly' ' |
||||
test_must_fail git diff --dirstat=future_param,lines,0 HEAD^..HEAD >actual_diff_dirstat 2>actual_error && |
||||
test_debug "cat actual_error" && |
||||
test_cmp /dev/null actual_diff_dirstat && |
||||
test_i18ngrep -q "future_param" actual_error && |
||||
test_i18ngrep -q "\--dirstat" actual_error |
||||
' |
||||
|
||||
test_expect_success '--dirstat=dummy1,cumulative,2dummy should report both unrecognized parameters' ' |
||||
test_must_fail git diff --dirstat=dummy1,cumulative,2dummy HEAD^..HEAD >actual_diff_dirstat 2>actual_error && |
||||
test_debug "cat actual_error" && |
||||
test_cmp /dev/null actual_diff_dirstat && |
||||
test_i18ngrep -q "dummy1" actual_error && |
||||
test_i18ngrep -q "2dummy" actual_error && |
||||
test_i18ngrep -q "\--dirstat" actual_error |
||||
' |
||||
|
||||
test_expect_success 'diff.dirstat=future_param,0,lines should warn, but still work' ' |
||||
git -c diff.dirstat=future_param,0,lines diff --dirstat HEAD^..HEAD >actual_diff_dirstat 2>actual_error && |
||||
test_debug "cat actual_error" && |
||||
test_cmp expect_diff_dirstat actual_diff_dirstat && |
||||
test_i18ngrep -q "future_param" actual_error && |
||||
test_i18ngrep -q "diff\\.dirstat" actual_error && |
||||
|
||||
git -c diff.dirstat=future_param,0,lines diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M 2>actual_error && |
||||
test_debug "cat actual_error" && |
||||
test_cmp expect_diff_dirstat_M actual_diff_dirstat_M && |
||||
test_i18ngrep -q "future_param" actual_error && |
||||
test_i18ngrep -q "diff\\.dirstat" actual_error && |
||||
|
||||
git -c diff.dirstat=future_param,0,lines diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC 2>actual_error && |
||||
test_debug "cat actual_error" && |
||||
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC && |
||||
test_i18ngrep -q "future_param" actual_error && |
||||
test_i18ngrep -q "diff\\.dirstat" actual_error |
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue