 7478ac57c4
			
		
	
	7478ac57c4
	
	
	
		
			
			Suggested-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Johan Herland <johan@herland.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			980 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			980 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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
 |