@@ -386,6 +386,15 @@ test_expect_success 'later options override earlier options:' '
386
386
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
387
387
'
388
388
389
+ test_expect_success ' non-defaults in config overridden by explicit defaults on command line' '
390
+ git -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 HEAD^..HEAD >actual_diff_dirstat &&
391
+ test_cmp expect_diff_dirstat actual_diff_dirstat &&
392
+ git -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 -M HEAD^..HEAD >actual_diff_dirstat_M &&
393
+ test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
394
+ git -c diff.dirstat=files,cumulative,50 diff --dirstat=changes,noncumulative,3 -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
395
+ test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
396
+ '
397
+
389
398
cat << EOF >expect_diff_dirstat
390
399
2.1% changed/
391
400
10.8% dst/copy/changed/
@@ -437,6 +446,15 @@ test_expect_success '-X0' '
437
446
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
438
447
'
439
448
449
+ test_expect_success ' diff.dirstat=0' '
450
+ git -c diff.dirstat=0 diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
451
+ test_cmp expect_diff_dirstat actual_diff_dirstat &&
452
+ git -c diff.dirstat=0 diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
453
+ test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
454
+ git -c diff.dirstat=0 diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
455
+ test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
456
+ '
457
+
440
458
cat << EOF >expect_diff_dirstat
441
459
2.1% changed/
442
460
10.8% dst/copy/changed/
@@ -507,6 +525,24 @@ test_expect_success '-X0,cumulative' '
507
525
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
508
526
'
509
527
528
+ test_expect_success ' diff.dirstat=0,cumulative' '
529
+ git -c diff.dirstat=0,cumulative diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
530
+ test_cmp expect_diff_dirstat actual_diff_dirstat &&
531
+ git -c diff.dirstat=0,cumulative diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
532
+ test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
533
+ git -c diff.dirstat=0,cumulative diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
534
+ test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
535
+ '
536
+
537
+ test_expect_success ' diff.dirstat=0 & --dirstat=cumulative' '
538
+ git -c diff.dirstat=0 diff --dirstat=cumulative HEAD^..HEAD >actual_diff_dirstat &&
539
+ test_cmp expect_diff_dirstat actual_diff_dirstat &&
540
+ git -c diff.dirstat=0 diff --dirstat=cumulative -M HEAD^..HEAD >actual_diff_dirstat_M &&
541
+ test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
542
+ git -c diff.dirstat=0 diff --dirstat=cumulative -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
543
+ test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
544
+ '
545
+
510
546
cat << EOF >expect_diff_dirstat
511
547
9.0% changed/
512
548
9.0% dst/copy/changed/
@@ -558,6 +594,15 @@ test_expect_success '--dirstat=files' '
558
594
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
559
595
'
560
596
597
+ test_expect_success ' diff.dirstat=files' '
598
+ git -c diff.dirstat=files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
599
+ test_cmp expect_diff_dirstat actual_diff_dirstat &&
600
+ git -c diff.dirstat=files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
601
+ test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
602
+ git -c diff.dirstat=files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
603
+ test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
604
+ '
605
+
561
606
cat << EOF >expect_diff_dirstat
562
607
27.2% dst/copy/
563
608
27.2% dst/move/
@@ -601,6 +646,15 @@ test_expect_success '--dirstat=files,10' '
601
646
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
602
647
'
603
648
649
+ test_expect_success ' diff.dirstat=10,files' '
650
+ git -c diff.dirstat=10,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
651
+ test_cmp expect_diff_dirstat actual_diff_dirstat &&
652
+ git -c diff.dirstat=10,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
653
+ test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
654
+ git -c diff.dirstat=10,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
655
+ test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
656
+ '
657
+
604
658
cat << EOF >expect_diff_dirstat
605
659
9.0% changed/
606
660
9.0% dst/copy/changed/
@@ -662,6 +716,15 @@ test_expect_success '--dirstat=files,cumulative' '
662
716
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
663
717
'
664
718
719
+ test_expect_success ' diff.dirstat=cumulative,files' '
720
+ git -c diff.dirstat=cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
721
+ test_cmp expect_diff_dirstat actual_diff_dirstat &&
722
+ git -c diff.dirstat=cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
723
+ test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
724
+ git -c diff.dirstat=cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
725
+ test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
726
+ '
727
+
665
728
cat << EOF >expect_diff_dirstat
666
729
27.2% dst/copy/
667
730
27.2% dst/move/
@@ -703,4 +766,13 @@ test_expect_success '--dirstat=files,cumulative,10' '
703
766
test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
704
767
'
705
768
769
+ test_expect_success ' diff.dirstat=10,cumulative,files' '
770
+ git -c diff.dirstat=10,cumulative,files diff --dirstat HEAD^..HEAD >actual_diff_dirstat &&
771
+ test_cmp expect_diff_dirstat actual_diff_dirstat &&
772
+ git -c diff.dirstat=10,cumulative,files diff --dirstat -M HEAD^..HEAD >actual_diff_dirstat_M &&
773
+ test_cmp expect_diff_dirstat_M actual_diff_dirstat_M &&
774
+ git -c diff.dirstat=10,cumulative,files diff --dirstat -C -C HEAD^..HEAD >actual_diff_dirstat_CC &&
775
+ test_cmp expect_diff_dirstat_CC actual_diff_dirstat_CC
776
+ '
777
+
706
778
test_done
0 commit comments