. ./test-lib.sh
 . "$TEST_DIRECTORY"/diff-lib.sh
 
-_z40=0000000000000000000000000000000000000000
 test_expect_success setup '
        test_tick &&
        test_create_repo sub &&
 '
 
 test_expect_success 'git diff HEAD with dirty submodule (work tree, refs match) [.git/config]' '
+       git config diff.ignoreSubmodules all &&
+       git diff HEAD >actual &&
+       ! test -s actual &&
        git config submodule.subname.ignore none &&
        git config submodule.subname.path sub &&
        git diff HEAD >actual &&
        sed -e "1,/^@@/d" actual >actual.body &&
        expect_from_to >expect.body $subprev $subprev-dirty &&
        test_cmp expect.body actual.body &&
-       git config --remove-section submodule.subname
+       git config --remove-section submodule.subname &&
+       git config --unset diff.ignoreSubmodules
 '
 
 test_expect_success 'git diff HEAD with dirty submodule (work tree, refs match) [.gitmodules]' '
+       git config diff.ignoreSubmodules dirty &&
+       git diff HEAD >actual &&
+       ! test -s actual &&
        git config --add -f .gitmodules submodule.subname.ignore none &&
        git config --add -f .gitmodules submodule.subname.path sub &&
        git diff HEAD >actual &&
        test_cmp expect.body actual.body &&
        git config --remove-section submodule.subname &&
        git config --remove-section -f .gitmodules submodule.subname &&
+       git config --unset diff.ignoreSubmodules &&
        rm .gitmodules
 '
 
 test_expect_success 'conflicted submodule setup' '
 
        # 39 efs
-       c=fffffffffffffffffffffffffffffffffffffff
+       c=fffffffffffffffffffffffffffffffffffffff &&
        (
-               echo "000000 $_z40 0    sub"
-               echo "160000 1$c 1      sub"
-               echo "160000 2$c 2      sub"
+               echo "000000 $_z40 0    sub" &&
+               echo "160000 1$c 1      sub" &&
+               echo "160000 2$c 2      sub" &&
                echo "160000 3$c 3      sub"
        ) | git update-index --index-info &&
        echo >expect.nosub '\''diff --cc sub