Merge branch 'en/tree-walk-optim'
[gitweb.git] / t / t4041-diff-submodule-option.sh
index 019acb926d6765bf24e1dfe4bea2a9dba28ca797..995bdfafecedf6b629acdb3300732a4bb691f23c 100755 (executable)
@@ -85,10 +85,11 @@ EOF
 "
 
 commit_file sm1 &&
-cd sm1 &&
-git reset --hard HEAD~2 >/dev/null &&
-head3=$(git rev-parse --verify HEAD | cut -c1-7) &&
-cd ..
+head3=$(
+       cd sm1 &&
+       git reset --hard HEAD~2 >/dev/null &&
+       git rev-parse --verify HEAD | cut -c1-7
+)
 
 test_expect_success 'modified submodule(backward)' "
        git diff-index -p --submodule=log HEAD >actual &&
@@ -205,6 +206,21 @@ Submodule sm1 contains untracked content
 EOF
 "
 
+test_expect_success 'submodule contains untracked content (untracked ignored)' "
+       git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
+       ! test -s actual
+"
+
+test_expect_success 'submodule contains untracked content (dirty ignored)' "
+       git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
+       ! test -s actual
+"
+
+test_expect_success 'submodule contains untracked content (all ignored)' "
+       git diff-index -p --ignore-submodules=all --submodule=log HEAD >actual &&
+       ! test -s actual
+"
+
 test_expect_success 'submodule contains untracked and modifed content' "
        echo new > sm1/foo6 &&
        git diff-index -p --submodule=log HEAD >actual &&
@@ -214,6 +230,26 @@ Submodule sm1 contains modified content
 EOF
 "
 
+test_expect_success 'submodule contains untracked and modifed content (untracked ignored)' "
+       echo new > sm1/foo6 &&
+       git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
+       diff actual - <<-EOF
+Submodule sm1 contains modified content
+EOF
+"
+
+test_expect_success 'submodule contains untracked and modifed content (dirty ignored)' "
+       echo new > sm1/foo6 &&
+       git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
+       ! test -s actual
+"
+
+test_expect_success 'submodule contains untracked and modifed content (all ignored)' "
+       echo new > sm1/foo6 &&
+       git diff-index -p --ignore-submodules --submodule=log HEAD >actual &&
+       ! test -s actual
+"
+
 test_expect_success 'submodule contains modifed content' "
        rm -f sm1/new-file &&
        git diff-index -p --submodule=log HEAD >actual &&
@@ -242,6 +278,27 @@ Submodule sm1 $head6..$head8:
 EOF
 "
 
+test_expect_success 'modified submodule contains untracked content (untracked ignored)' "
+       git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
+       diff actual - <<-EOF
+Submodule sm1 $head6..$head8:
+  > change
+EOF
+"
+
+test_expect_success 'modified submodule contains untracked content (dirty ignored)' "
+       git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
+       diff actual - <<-EOF
+Submodule sm1 $head6..$head8:
+  > change
+EOF
+"
+
+test_expect_success 'modified submodule contains untracked content (all ignored)' "
+       git diff-index -p --ignore-submodules=all --submodule=log HEAD >actual &&
+       ! test -s actual
+"
+
 test_expect_success 'modified submodule contains untracked and modifed content' "
        echo modification >> sm1/foo6 &&
        git diff-index -p --submodule=log HEAD >actual &&
@@ -253,6 +310,31 @@ Submodule sm1 $head6..$head8:
 EOF
 "
 
+test_expect_success 'modified submodule contains untracked and modifed content (untracked ignored)' "
+       echo modification >> sm1/foo6 &&
+       git diff-index -p --ignore-submodules=untracked --submodule=log HEAD >actual &&
+       diff actual - <<-EOF
+Submodule sm1 contains modified content
+Submodule sm1 $head6..$head8:
+  > change
+EOF
+"
+
+test_expect_success 'modified submodule contains untracked and modifed content (dirty ignored)' "
+       echo modification >> sm1/foo6 &&
+       git diff-index -p --ignore-submodules=dirty --submodule=log HEAD >actual &&
+       diff actual - <<-EOF
+Submodule sm1 $head6..$head8:
+  > change
+EOF
+"
+
+test_expect_success 'modified submodule contains untracked and modifed content (all ignored)' "
+       echo modification >> sm1/foo6 &&
+       git diff-index -p --ignore-submodules --submodule=log HEAD >actual &&
+       ! test -s actual
+"
+
 test_expect_success 'modified submodule contains modifed content' "
        rm -f sm1/new-file &&
        git diff-index -p --submodule=log HEAD >actual &&