#!/bin/sh global test_description := ''diff with unmerged index entries'' source ./test-lib.sh test_expect_success setup ' for i in 0 1 2 3 do blob=$(echo $i | git hash-object --stdin) && eval "blob$i=$blob" && eval "m$i=\"100644 \$blob$i $i\"" || return 1 done && paths= && for b in o x do for o in o x do for t in o x do path="$b$o$t" && case "$path" in ooo) continue ;; esac paths="$paths$path " && p=" $path" && case "$b" in x) echo "$m1$p" ;; esac && case "$o" in x) echo "$m2$p" ;; esac && case "$t" in x) echo "$m3$p" ;; esac || return 1 done done done >ls-files-s.expect && git update-index --index-info ls-files-s.actual && test_cmp ls-files-s.expect ls-files-s.actual ' test_expect_success 'diff-files -0' ' for path in $paths do >"$path" && echo ":000000 100644 $_z40 $_z40 U $path" done >diff-files-0.expect && git diff-files -0 >diff-files-0.actual && test_cmp diff-files-0.expect diff-files-0.actual ' test_expect_success 'diff-files -1' ' for path in $paths do >"$path" && echo ":000000 100644 $_z40 $_z40 U $path" && case "$path" in x??) echo ":100644 100644 $blob1 $_z40 M $path" esac done >diff-files-1.expect && git diff-files -1 >diff-files-1.actual && test_cmp diff-files-1.expect diff-files-1.actual ' test_expect_success 'diff-files -2' ' for path in $paths do >"$path" && echo ":000000 100644 $_z40 $_z40 U $path" && case "$path" in ?x?) echo ":100644 100644 $blob2 $_z40 M $path" esac done >diff-files-2.expect && git diff-files -2 >diff-files-2.actual && test_cmp diff-files-2.expect diff-files-2.actual && git diff-files >diff-files-default-2.actual && test_cmp diff-files-2.expect diff-files-default-2.actual ' test_expect_success 'diff-files -3' ' for path in $paths do >"$path" && echo ":000000 100644 $_z40 $_z40 U $path" && case "$path" in ??x) echo ":100644 100644 $blob3 $_z40 M $path" esac done >diff-files-3.expect && git diff-files -3 >diff-files-3.actual && test_cmp diff-files-3.expect diff-files-3.actual ' test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"diff with unmerged index entries">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(setup)} { (SQ <"\n"> <"\tfor i in 0 1 2 3\n"> <"\tdo\n"> <"\t\tblob=$(echo $i | git hash-object --stdin) &&\n"> <"\t\teval \"blob$i=$blob\" &&\n"> <"\t\teval \"m$i=\\\"100644 \\$blob$i $i\\\"\" || return 1\n"> <"\tdone &&\n"> <"\tpaths= &&\n"> <"\tfor b in o x\n"> <"\tdo\n"> <"\t\tfor o in o x\n"> <"\t\tdo\n"> <"\t\t\tfor t in o x\n"> <"\t\t\tdo\n"> <"\t\t\t\tpath=\"$b$o$t\" &&\n"> <"\t\t\t\tcase \"$path\" in ooo) continue ;; esac\n"> <"\t\t\t\tpaths=\"$paths$path \" &&\n"> <"\t\t\t\tp=\"\t$path\" &&\n"> <"\t\t\t\tcase \"$b\" in x) echo \"$m1$p\" ;; esac &&\n"> <"\t\t\t\tcase \"$o\" in x) echo \"$m2$p\" ;; esac &&\n"> <"\t\t\t\tcase \"$t\" in x) echo \"$m3$p\" ;; esac ||\n"> <"\t\t\t\treturn 1\n"> <"\t\t\tdone\n"> <"\t\tdone\n"> <"\tdone >ls-files-s.expect &&\n"> <"\tgit update-index --index-info <"\tgit ls-files -s >ls-files-s.actual &&\n"> <"\ttest_cmp ls-files-s.expect ls-files-s.actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"diff-files -0">)} { (SQ <"\n"> <"\tfor path in $paths\n"> <"\tdo\n"> <"\t\t>\"$path\" &&\n"> <"\t\techo \":000000 100644 $_z40 $_z40 U\t$path\"\n"> <"\tdone >diff-files-0.expect &&\n"> <"\tgit diff-files -0 >diff-files-0.actual &&\n"> <"\ttest_cmp diff-files-0.expect diff-files-0.actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"diff-files -1">)} { (SQ <"\n"> <"\tfor path in $paths\n"> <"\tdo\n"> <"\t\t>\"$path\" &&\n"> <"\t\techo \":000000 100644 $_z40 $_z40 U\t$path\" &&\n"> <"\t\tcase \"$path\" in\n"> <"\t\tx??) echo \":100644 100644 $blob1 $_z40 M\t$path\"\n"> <"\t\tesac\n"> <"\tdone >diff-files-1.expect &&\n"> <"\tgit diff-files -1 >diff-files-1.actual &&\n"> <"\ttest_cmp diff-files-1.expect diff-files-1.actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"diff-files -2">)} { (SQ <"\n"> <"\tfor path in $paths\n"> <"\tdo\n"> <"\t\t>\"$path\" &&\n"> <"\t\techo \":000000 100644 $_z40 $_z40 U\t$path\" &&\n"> <"\t\tcase \"$path\" in\n"> <"\t\t?x?) echo \":100644 100644 $blob2 $_z40 M\t$path\"\n"> <"\t\tesac\n"> <"\tdone >diff-files-2.expect &&\n"> <"\tgit diff-files -2 >diff-files-2.actual &&\n"> <"\ttest_cmp diff-files-2.expect diff-files-2.actual &&\n"> <"\tgit diff-files >diff-files-default-2.actual &&\n"> <"\ttest_cmp diff-files-2.expect diff-files-default-2.actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"diff-files -3">)} { (SQ <"\n"> <"\tfor path in $paths\n"> <"\tdo\n"> <"\t\t>\"$path\" &&\n"> <"\t\techo \":000000 100644 $_z40 $_z40 U\t$path\" &&\n"> <"\t\tcase \"$path\" in\n"> <"\t\t??x) echo \":100644 100644 $blob3 $_z40 M\t$path\"\n"> <"\t\tesac\n"> <"\tdone >diff-files-3.expect &&\n"> <"\tgit diff-files -3 >diff-files-3.actual &&\n"> <"\ttest_cmp diff-files-3.expect diff-files-3.actual\n"> ) } ) (C {(test_done)}) ] )