tests: add missing &&

Breaks in a test assertion's && chain can potentially hide
failures from earlier commands in the chain.

Commands intended to fail should be marked with !, test_must_fail, or
test_might_fail.  The examples in this patch do not require that.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jonathan Nieder 2010-10-30 20:46:54 -05:00 committed by Junio C Hamano
parent 00648ba050
commit a48fcd8369
84 changed files with 166 additions and 166 deletions

View File

@ -38,7 +38,7 @@ test_expect_success \
'prepare reference tree' \ 'prepare reference tree' \
'echo "1A quick brown fox jumps over the" >file && 'echo "1A quick brown fox jumps over the" >file &&
echo "lazy dog" >>file && echo "lazy dog" >>file &&
git add file git add file &&
GIT_AUTHOR_NAME="A" git commit -a -m "Initial."' GIT_AUTHOR_NAME="A" git commit -a -m "Initial."'


test_expect_success \ test_expect_success \

View File

@ -59,7 +59,7 @@ test_expect_success 'attribute test' '


test_expect_success 'attribute test: read paths from stdin' ' test_expect_success 'attribute test: read paths from stdin' '


cat <<EOF > expect cat <<EOF > expect &&
f: test: f f: test: f
a/f: test: f a/f: test: f
a/c/f: test: f a/c/f: test: f

View File

@ -7,7 +7,7 @@ UNZIP=${UNZIP:-unzip}


test_expect_success setup ' test_expect_success setup '


git config core.autocrlf true git config core.autocrlf true &&


printf "CRLF line ending\r\nAnd another\r\n" > sample && printf "CRLF line ending\r\nAnd another\r\n" > sample &&
git add sample && git add sample &&
@ -20,7 +20,7 @@ test_expect_success setup '
test_expect_success 'tar archive' ' test_expect_success 'tar archive' '


git archive --format=tar HEAD | git archive --format=tar HEAD |
( mkdir untarred && cd untarred && "$TAR" -xf - ) ( mkdir untarred && cd untarred && "$TAR" -xf - ) &&


test_cmp sample untarred/sample test_cmp sample untarred/sample



View File

@ -12,7 +12,7 @@ test_expect_success setup '


git config core.autocrlf false && git config core.autocrlf false &&


echo "one text" > .gitattributes echo "one text" > .gitattributes &&


for w in Hello world how are you; do echo $w; done >one && for w in Hello world how are you; do echo $w; done >one &&
for w in I am very very fine thank you; do echo $w; done >two && for w in I am very very fine thank you; do echo $w; done >two &&

View File

@ -12,14 +12,14 @@ unibad=
no_symlinks= no_symlinks=
test_expect_success 'see what we expect' ' test_expect_success 'see what we expect' '


test_case=test_expect_success test_case=test_expect_success &&
test_unicode=test_expect_success test_unicode=test_expect_success &&
mkdir junk && mkdir junk &&
echo good >junk/CamelCase && echo good >junk/CamelCase &&
echo bad >junk/camelcase && echo bad >junk/camelcase &&
if test "$(cat junk/CamelCase)" != good if test "$(cat junk/CamelCase)" != good
then then
test_case=test_expect_failure test_case=test_expect_failure &&
case_insensitive=t case_insensitive=t
fi && fi &&
rm -fr junk && rm -fr junk &&
@ -27,7 +27,7 @@ test_expect_success 'see what we expect' '
>junk/"$auml" && >junk/"$auml" &&
case "$(cd junk && echo *)" in case "$(cd junk && echo *)" in
"$aumlcdiar") "$aumlcdiar")
test_unicode=test_expect_failure test_unicode=test_expect_failure &&
unibad=t unibad=t
;; ;;
*) ;; *) ;;
@ -36,7 +36,7 @@ test_expect_success 'see what we expect' '
{ {
ln -s x y 2> /dev/null && ln -s x y 2> /dev/null &&
test -h y 2> /dev/null || test -h y 2> /dev/null ||
no_symlinks=1 no_symlinks=1 &&
rm -f y rm -f y
} }
' '
@ -128,7 +128,7 @@ test_expect_success "setup unicode normalization tests" '
cd unicode && cd unicode &&
touch "$aumlcdiar" && touch "$aumlcdiar" &&
git add "$aumlcdiar" && git add "$aumlcdiar" &&
git commit -m initial git commit -m initial &&
git tag initial && git tag initial &&
git checkout -b topic && git checkout -b topic &&
git mv $aumlcdiar tmp && git mv $aumlcdiar tmp &&

View File

@ -309,7 +309,7 @@ test_expect_success \
test_expect_success \ test_expect_success \
'6 - must not exist in O && !A && !B case' " '6 - must not exist in O && !A && !B case' "
rm -f .git/index DD && rm -f .git/index DD &&
echo DD >DD echo DD >DD &&
git update-index --add DD && git update-index --add DD &&
test_must_fail git read-tree -m $tree_O $tree_A $tree_B test_must_fail git read-tree -m $tree_O $tree_A $tree_B
" "

View File

@ -394,7 +394,7 @@ test_expect_success '-m references the correct modified tree' '
echo >file-a && echo >file-a &&
echo >file-b && echo >file-b &&
git add file-a file-b && git add file-a file-b &&
git commit -a -m "test for correct modified tree" git commit -a -m "test for correct modified tree" &&
git branch initial-mod && git branch initial-mod &&
echo b >file-b && echo b >file-b &&
git commit -a -m "B" && git commit -a -m "B" &&

View File

@ -47,7 +47,7 @@ test_expect_success 'read-tree without .git/info/sparse-checkout' '
' '


test_expect_success 'read-tree with .git/info/sparse-checkout but disabled' ' test_expect_success 'read-tree with .git/info/sparse-checkout but disabled' '
echo >.git/info/sparse-checkout echo >.git/info/sparse-checkout &&
git read-tree -m -u HEAD && git read-tree -m -u HEAD &&
git ls-files -t >result && git ls-files -t >result &&
test_cmp expected.swt result && test_cmp expected.swt result &&

View File

@ -42,7 +42,7 @@ test_expect_success 'git diff' '
' '


test_expect_success 'tree' ' test_expect_success 'tree' '
tree=$(git write-tree 2>/dev/null) tree=$(git write-tree 2>/dev/null) &&
test 8988da15d077d4829fc51d8544c097def6644dbb = $tree test 8988da15d077d4829fc51d8544c097def6644dbb = $tree
' '



View File

@ -39,7 +39,7 @@ test_expect_success 'gitdir selection on unsupported repo' '
( (
cd test2 && cd test2 &&
git config core.repositoryformatversion >../actual git config core.repositoryformatversion >../actual
) ) &&
test_cmp expect actual test_cmp expect actual
' '



View File

@ -28,7 +28,7 @@ test_expect_success 'symbolic-ref refuses non-ref for HEAD' '
reset_to_sane reset_to_sane


test_expect_success 'symbolic-ref refuses bare sha1' ' test_expect_success 'symbolic-ref refuses bare sha1' '
echo content >file && git add file && git commit -m one echo content >file && git add file && git commit -m one &&
test_must_fail git symbolic-ref HEAD `git rev-parse HEAD` test_must_fail git symbolic-ref HEAD `git rev-parse HEAD`
' '
reset_to_sane reset_to_sane

View File

@ -32,7 +32,7 @@ test_expect_success "check-ref-format --branch @{-1}" '
T=$(git write-tree) && T=$(git write-tree) &&
sha1=$(echo A | git commit-tree $T) && sha1=$(echo A | git commit-tree $T) &&
git update-ref refs/heads/master $sha1 && git update-ref refs/heads/master $sha1 &&
git update-ref refs/remotes/origin/master $sha1 git update-ref refs/remotes/origin/master $sha1 &&
git checkout master && git checkout master &&
git checkout origin/master && git checkout origin/master &&
git checkout master && git checkout master &&
@ -47,7 +47,7 @@ test_expect_success 'check-ref-format --branch from subdir' '
T=$(git write-tree) && T=$(git write-tree) &&
sha1=$(echo A | git commit-tree $T) && sha1=$(echo A | git commit-tree $T) &&
git update-ref refs/heads/master $sha1 && git update-ref refs/heads/master $sha1 &&
git update-ref refs/remotes/origin/master $sha1 git update-ref refs/remotes/origin/master $sha1 &&
git checkout master && git checkout master &&
git checkout origin/master && git checkout origin/master &&
git checkout master && git checkout master &&

View File

@ -186,8 +186,8 @@ test_expect_success 'delete' '
test_tick && test_tick &&
git commit -m tiger C && git commit -m tiger C &&


HEAD_entry_count=$(git reflog | wc -l) HEAD_entry_count=$(git reflog | wc -l) &&
master_entry_count=$(git reflog show master | wc -l) master_entry_count=$(git reflog show master | wc -l) &&


test $HEAD_entry_count = 5 && test $HEAD_entry_count = 5 &&
test $master_entry_count = 5 && test $master_entry_count = 5 &&
@ -199,13 +199,13 @@ test_expect_success 'delete' '
test $HEAD_entry_count = $(git reflog | wc -l) && test $HEAD_entry_count = $(git reflog | wc -l) &&
! grep ox < output && ! grep ox < output &&


master_entry_count=$(wc -l < output) master_entry_count=$(wc -l < output) &&


git reflog delete HEAD@{1} && git reflog delete HEAD@{1} &&
test $(($HEAD_entry_count -1)) = $(git reflog | wc -l) && test $(($HEAD_entry_count -1)) = $(git reflog | wc -l) &&
test $master_entry_count = $(git reflog show master | wc -l) && test $master_entry_count = $(git reflog show master | wc -l) &&


HEAD_entry_count=$(git reflog | wc -l) HEAD_entry_count=$(git reflog | wc -l) &&


git reflog delete master@{07.04.2005.15:15:00.-0700} && git reflog delete master@{07.04.2005.15:15:00.-0700} &&
git reflog show master > output && git reflog show master > output &&

View File

@ -61,7 +61,7 @@ test_expect_success 'object with bad sha1' '
sha=$(echo blob | git hash-object -w --stdin) && sha=$(echo blob | git hash-object -w --stdin) &&
old=$(echo $sha | sed "s+^..+&/+") && old=$(echo $sha | sed "s+^..+&/+") &&
new=$(dirname $old)/ffffffffffffffffffffffffffffffffffffff && new=$(dirname $old)/ffffffffffffffffffffffffffffffffffffff &&
sha="$(dirname $new)$(basename $new)" sha="$(dirname $new)$(basename $new)" &&
mv .git/objects/$old .git/objects/$new && mv .git/objects/$old .git/objects/$new &&
test_when_finished "remove_object $sha" && test_when_finished "remove_object $sha" &&
git update-index --add --cacheinfo 100644 $sha foo && git update-index --add --cacheinfo 100644 $sha foo &&
@ -111,7 +111,7 @@ test_expect_success 'email with embedded > is not okay' '
' '


test_expect_success 'tag pointing to nonexistent' ' test_expect_success 'tag pointing to nonexistent' '
cat >invalid-tag <<-\EOF cat >invalid-tag <<-\EOF &&
object ffffffffffffffffffffffffffffffffffffffff object ffffffffffffffffffffffffffffffffffffffff
type commit type commit
tag invalid tag invalid

View File

@ -17,7 +17,7 @@ test_expect_success SYMLINKS setup '
git branch side && git branch side &&


echo goodbye >nitfol && echo goodbye >nitfol &&
git add nitfol git add nitfol &&
test_tick && test_tick &&
git commit -m "master adds file nitfol" && git commit -m "master adds file nitfol" &&



View File

@ -32,7 +32,7 @@ test_expect_success PERL 'git checkout -p' '
' '


test_expect_success PERL 'git checkout -p with staged changes' ' test_expect_success PERL 'git checkout -p with staged changes' '
set_state dir/foo work index set_state dir/foo work index &&
(echo n; echo y) | git checkout -p && (echo n; echo y) | git checkout -p &&
verify_saved_state bar && verify_saved_state bar &&
verify_state dir/foo index index verify_state dir/foo index index

View File

@ -14,7 +14,7 @@ TEST_FILE=foo
test_expect_success 'Setup' ' test_expect_success 'Setup' '
echo "Initial" >"$TEST_FILE" && echo "Initial" >"$TEST_FILE" &&
git add "$TEST_FILE" && git add "$TEST_FILE" &&
git commit -m "First Commit" git commit -m "First Commit" &&
test_tick && test_tick &&
echo "State 1" >>"$TEST_FILE" && echo "State 1" >>"$TEST_FILE" &&
git add "$TEST_FILE" && git add "$TEST_FILE" &&

View File

@ -26,7 +26,7 @@ chmod +x .git/hooks/post-commit'


test_expect_success 'post-commit hook used ordinarily' ' test_expect_success 'post-commit hook used ordinarily' '
echo initial >top && echo initial >top &&
git add top git add top &&
git commit -m initial && git commit -m initial &&
test -r "${COMMIT_FILE}" test -r "${COMMIT_FILE}"
' '
@ -45,7 +45,7 @@ test -r "${COMMIT_FILE}"
rm -rf "${COMMIT_FILE}" rm -rf "${COMMIT_FILE}"


test_expect_success 'post-commit-hook from sub dir' ' test_expect_success 'post-commit-hook from sub dir' '
echo changed again >top echo changed again >top &&
cd subdir && cd subdir &&
git --git-dir .git --work-tree .. add ../top && git --git-dir .git --work-tree .. add ../top &&
git --git-dir .git --work-tree .. commit -m subcommit && git --git-dir .git --work-tree .. commit -m subcommit &&

View File

@ -51,7 +51,7 @@ test_expect_success 'update-index again' \
echo hello world >dir1/file3 && echo hello world >dir1/file3 &&
echo goodbye people >file2 && echo goodbye people >file2 &&
git update-index --add file2 dir1/file3 && git update-index --add file2 dir1/file3 &&
echo hello everybody >file2 echo hello everybody >file2 &&
echo happy >dir1/file3 && echo happy >dir1/file3 &&
git update-index --again && git update-index --again &&
git ls-files -s >current && git ls-files -s >current &&

View File

@ -25,7 +25,7 @@ test_expect_success setup '
echo initial >dir1/sub2 && echo initial >dir1/sub2 &&
echo initial >dir2/sub3 && echo initial >dir2/sub3 &&
git add check dir1 dir2 top foo && git add check dir1 dir2 top foo &&
test_tick test_tick &&
git commit -m initial && git commit -m initial &&


echo changed >check && echo changed >check &&

View File

@ -156,7 +156,7 @@ test_expect_success 'trailing slash in exclude allows directory match (2)' '


test_expect_success 'trailing slash in exclude forces directory match (1)' ' test_expect_success 'trailing slash in exclude forces directory match (1)' '


>two >two &&
git ls-files --others --exclude=two/ >output && git ls-files --others --exclude=two/ >output &&
grep "^two" output grep "^two" output



View File

@ -544,7 +544,7 @@ test_expect_success 'reset and bind merge' '
echo "100644 $o0 0 c" echo "100644 $o0 0 c"
echo "100644 $o1 0 d/e" echo "100644 $o1 0 d/e"
) >expected && ) >expected &&
test_cmp expected actual test_cmp expected actual &&


git read-tree --prefix=z/ master && git read-tree --prefix=z/ master &&
git ls-files -s >actual && git ls-files -s >actual &&

View File

@ -10,10 +10,10 @@ test_expect_success setup '
cd sub && cd sub &&
git init && git init &&
>subfile && >subfile &&
git add subfile git add subfile &&
git commit -m "subproject commit #1" git commit -m "subproject commit #1"
) && ) &&
>mainfile >mainfile &&
git add sub mainfile && git add sub mainfile &&
test_tick && test_tick &&
git commit -m "superproject commit #1" git commit -m "superproject commit #1"

View File

@ -12,13 +12,13 @@ test_expect_success 'make commits' '
' '


test_expect_success 'make branches' ' test_expect_success 'make branches' '
git branch branch-one git branch branch-one &&
git branch branch-two HEAD^ git branch branch-two HEAD^
' '


test_expect_success 'make remote branches' ' test_expect_success 'make remote branches' '
git update-ref refs/remotes/origin/branch-one branch-one git update-ref refs/remotes/origin/branch-one branch-one &&
git update-ref refs/remotes/origin/branch-two branch-two git update-ref refs/remotes/origin/branch-two branch-two &&
git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/branch-one git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/branch-one
' '



View File

@ -43,8 +43,8 @@ test_expect_success TABS_IN_FILENAMES 'git ls-files no-funny' \
test_cmp expected current' test_cmp expected current'


test_expect_success TABS_IN_FILENAMES 'setup expect' ' test_expect_success TABS_IN_FILENAMES 'setup expect' '
t0=`git write-tree` t0=`git write-tree` &&
echo "$t0" >t0 echo "$t0" >t0 &&


cat > expected <<\EOF cat > expected <<\EOF
just space just space
@ -69,8 +69,8 @@ test_expect_success TABS_IN_FILENAMES 'git ls-files -z with-funny' \
test_cmp expected current' test_cmp expected current'


test_expect_success TABS_IN_FILENAMES 'setup expect' ' test_expect_success TABS_IN_FILENAMES 'setup expect' '
t1=`git write-tree` t1=`git write-tree` &&
echo "$t1" >t1 echo "$t1" >t1 &&


cat > expected <<\EOF cat > expected <<\EOF
just space just space

View File

@ -26,7 +26,7 @@ test_expect_success 'example 1: notes to add an Acked-by line' '
' '


test_expect_success 'example 2: binary notes' ' test_expect_success 'example 2: binary notes' '
cp "$TEST_DIRECTORY"/test4012.png . cp "$TEST_DIRECTORY"/test4012.png . &&
git checkout B && git checkout B &&
blob=$(git hash-object -w test4012.png) && blob=$(git hash-object -w test4012.png) &&
git notes --ref=logo add -C "$blob" && git notes --ref=logo add -C "$blob" &&

View File

@ -43,20 +43,20 @@ test_expect_success 'rebase -m' '
' '


test_expect_success 'rebase --stat' ' test_expect_success 'rebase --stat' '
git reset --hard start git reset --hard start &&
git rebase --stat master >diffstat.txt && git rebase --stat master >diffstat.txt &&
grep "^ fileX | *1 +$" diffstat.txt grep "^ fileX | *1 +$" diffstat.txt
' '


test_expect_success 'rebase w/config rebase.stat' ' test_expect_success 'rebase w/config rebase.stat' '
git reset --hard start git reset --hard start &&
git config rebase.stat true && git config rebase.stat true &&
git rebase master >diffstat.txt && git rebase master >diffstat.txt &&
grep "^ fileX | *1 +$" diffstat.txt grep "^ fileX | *1 +$" diffstat.txt
' '


test_expect_success 'rebase -n overrides config rebase.stat config' ' test_expect_success 'rebase -n overrides config rebase.stat config' '
git reset --hard start git reset --hard start &&
git config rebase.stat true && git config rebase.stat true &&
git rebase -n master >diffstat.txt && git rebase -n master >diffstat.txt &&
! grep "^ fileX | *1 +$" diffstat.txt ! grep "^ fileX | *1 +$" diffstat.txt

View File

@ -16,7 +16,7 @@ test_expect_success setup '
git commit -a -m "A sample commit log message that has a long git commit -a -m "A sample commit log message that has a long
summary that spills over multiple lines. summary that spills over multiple lines.


But otherwise with a sane description." But otherwise with a sane description." &&


git branch side && git branch side &&



View File

@ -173,14 +173,14 @@ EOF
test_expect_success 'pre-rebase hook stops rebase' ' test_expect_success 'pre-rebase hook stops rebase' '
git checkout -b stops1 other && git checkout -b stops1 other &&
test_must_fail git rebase --root --onto master && test_must_fail git rebase --root --onto master &&
test "z$(git symbolic-ref HEAD)" = zrefs/heads/stops1 test "z$(git symbolic-ref HEAD)" = zrefs/heads/stops1 &&
test 0 = $(git rev-list other...stops1 | wc -l) test 0 = $(git rev-list other...stops1 | wc -l)
' '


test_expect_success 'pre-rebase hook stops rebase -i' ' test_expect_success 'pre-rebase hook stops rebase -i' '
git checkout -b stops2 other && git checkout -b stops2 other &&
test_must_fail git rebase --root --onto master && test_must_fail git rebase --root --onto master &&
test "z$(git symbolic-ref HEAD)" = zrefs/heads/stops2 test "z$(git symbolic-ref HEAD)" = zrefs/heads/stops2 &&
test 0 = $(git rev-list other...stops2 | wc -l) test 0 = $(git rev-list other...stops2 | wc -l)
' '



View File

@ -26,7 +26,7 @@ test_auto_fixup() {
echo 1 >file1 && echo 1 >file1 &&
git add -u && git add -u &&
test_tick && test_tick &&
git commit -m "fixup! first" git commit -m "fixup! first" &&


git tag $1 && git tag $1 &&
test_tick && test_tick &&
@ -55,7 +55,7 @@ test_auto_squash() {
echo 1 >file1 && echo 1 >file1 &&
git add -u && git add -u &&
test_tick && test_tick &&
git commit -m "squash! first" git commit -m "squash! first" &&


git tag $1 && git tag $1 &&
test_tick && test_tick &&
@ -84,7 +84,7 @@ test_expect_success 'misspelled auto squash' '
echo 1 >file1 && echo 1 >file1 &&
git add -u && git add -u &&
test_tick && test_tick &&
git commit -m "squash! forst" git commit -m "squash! forst" &&
git tag final-missquash && git tag final-missquash &&
test_tick && test_tick &&
git rebase --autosquash -i HEAD^^^ && git rebase --autosquash -i HEAD^^^ &&

View File

@ -89,7 +89,7 @@ test_expect_success 'same, but do not remove trailing spaces' '
git config core.whitespace "-blank-at-eol" && git config core.whitespace "-blank-at-eol" &&
git reset --hard HEAD^ && git reset --hard HEAD^ &&
cp third file && git add file && git commit -m third && cp third file && git add file && git commit -m third &&
git rebase --whitespace=fix HEAD^^ git rebase --whitespace=fix HEAD^^ &&
git diff --exit-code HEAD^:file expect-second && git diff --exit-code HEAD^:file expect-second &&
test_cmp file third test_cmp file third
' '

View File

@ -23,7 +23,7 @@ test_expect_success 'conflicting merge' '
test_expect_success 'fixup' ' test_expect_success 'fixup' '
echo foo-dev >foo && echo foo-dev >foo &&
git add foo && test_tick && git commit -q -m 4 && git add foo && test_tick && git commit -q -m 4 &&
git reset --hard HEAD^ git reset --hard HEAD^ &&
echo foo-dev >expect echo foo-dev >expect
' '


@ -33,7 +33,7 @@ test_expect_success 'cherry-pick conflict' '
' '


test_expect_success 'reconfigure' ' test_expect_success 'reconfigure' '
git config rerere.enabled false git config rerere.enabled false &&
git reset --hard git reset --hard
' '



View File

@ -36,19 +36,19 @@ for_each_name () {
test_expect_success TABS_IN_FILENAMES 'setup' ' test_expect_success TABS_IN_FILENAMES 'setup' '


mkdir "$FN" && mkdir "$FN" &&
for_each_name "echo initial >\"\$name\"" for_each_name "echo initial >\"\$name\"" &&
git add . && git add . &&
git commit -q -m Initial && git commit -q -m Initial &&


for_each_name "echo second >\"\$name\"" && for_each_name "echo second >\"\$name\"" &&
git commit -a -m Second git commit -a -m Second &&


for_each_name "echo modified >\"\$name\"" for_each_name "echo modified >\"\$name\""


' '


test_expect_success TABS_IN_FILENAMES 'setup expected files' ' test_expect_success TABS_IN_FILENAMES 'setup expected files' '
cat >expect.quoted <<\EOF cat >expect.quoted <<\EOF &&
Name Name
"Name and a\nLF" "Name and a\nLF"
"Name and an\tHT" "Name and an\tHT"

View File

@ -157,7 +157,7 @@ EOF


test_expect_success 'stash branch' ' test_expect_success 'stash branch' '
echo foo > file && echo foo > file &&
git commit file -m first git commit file -m first &&
echo bar > file && echo bar > file &&
echo bar2 > file2 && echo bar2 > file2 &&
git add file2 && git add file2 &&
@ -255,7 +255,7 @@ test_expect_success 'stash rm and ignore' '
echo file >.gitignore && echo file >.gitignore &&
git stash save "rm and ignore" && git stash save "rm and ignore" &&
test bar = "$(cat file)" && test bar = "$(cat file)" &&
test file = "$(cat .gitignore)" test file = "$(cat .gitignore)" &&
git stash apply && git stash apply &&
! test -r file && ! test -r file &&
test file = "$(cat .gitignore)" test file = "$(cat .gitignore)"
@ -268,7 +268,7 @@ test_expect_success 'stash rm and ignore (stage .gitignore)' '
git add .gitignore && git add .gitignore &&
git stash save "rm and ignore (stage .gitignore)" && git stash save "rm and ignore (stage .gitignore)" &&
test bar = "$(cat file)" && test bar = "$(cat file)" &&
! test -r .gitignore ! test -r .gitignore &&
git stash apply && git stash apply &&
! test -r file && ! test -r file &&
test file = "$(cat .gitignore)" test file = "$(cat .gitignore)"

View File

@ -20,7 +20,7 @@ test_expect_success PERL 'setup' '
# note: bar sorts before dir, so the first 'n' is always to skip 'bar' # note: bar sorts before dir, so the first 'n' is always to skip 'bar'


test_expect_success PERL 'saying "n" does nothing' ' test_expect_success PERL 'saying "n" does nothing' '
set_state dir/foo work index set_state dir/foo work index &&
(echo n; echo n) | test_must_fail git stash save -p && (echo n; echo n) | test_must_fail git stash save -p &&
verify_state dir/foo work index && verify_state dir/foo work index &&
verify_saved_state bar verify_saved_state bar

View File

@ -155,7 +155,7 @@ test_expect_success \
git checkout-index -f -u -a && git checkout-index -f -u -a &&
sed -e "s/git/GIT/" file0 >file1 && sed -e "s/git/GIT/" file0 >file1 &&
sed -e "s/git/GET/" file0 >file2 && sed -e "s/git/GET/" file0 >file2 &&
rm -f file0 rm -f file0 &&
git update-index --add --remove file0 file1 file2' git update-index --add --remove file0 file1 file2'


test_expect_success \ test_expect_success \

View File

@ -330,7 +330,7 @@ test_expect_success 'check space before tab in indent (space-before-tab: on)' '


test_expect_success 'check spaces as indentation (indent-with-non-tab: off)' ' test_expect_success 'check spaces as indentation (indent-with-non-tab: off)' '


git config core.whitespace "-indent-with-non-tab" git config core.whitespace "-indent-with-non-tab" &&
echo " foo ();" > x && echo " foo ();" > x &&
git diff --check git diff --check



View File

@ -95,7 +95,7 @@ test_expect_success 'format.numbered && --keep-subject' '


test_expect_success 'format.numbered = auto' ' test_expect_success 'format.numbered = auto' '


git config format.numbered auto git config format.numbered auto &&
git format-patch --stdout HEAD~2 > patch5 && git format-patch --stdout HEAD~2 > patch5 &&
test_numbered patch5 test_numbered patch5



View File

@ -316,11 +316,11 @@ test_expect_success 'git diff (empty submodule dir)' '
test_expect_success 'conflicted submodule setup' ' test_expect_success 'conflicted submodule setup' '


# 39 efs # 39 efs
c=fffffffffffffffffffffffffffffffffffffff c=fffffffffffffffffffffffffffffffffffffff &&
( (
echo "000000 $_z40 0 sub" echo "000000 $_z40 0 sub" &&
echo "160000 1$c 1 sub" echo "160000 1$c 1 sub" &&
echo "160000 2$c 2 sub" echo "160000 2$c 2 sub" &&
echo "160000 3$c 3 sub" echo "160000 3$c 3 sub"
) | git update-index --index-info && ) | git update-index --index-info &&
echo >expect.nosub '\''diff --cc sub echo >expect.nosub '\''diff --cc sub

View File

@ -6,8 +6,8 @@ test_description='word diff colors'


test_expect_success setup ' test_expect_success setup '


git config diff.color.old red git config diff.color.old red &&
git config diff.color.new green git config diff.color.new green &&
git config diff.color.func magenta git config diff.color.func magenta


' '

View File

@ -41,11 +41,11 @@ test_expect_success 'setup' "
" "


test_expect_success 'stat binary diff -- should not fail.' \ test_expect_success 'stat binary diff -- should not fail.' \
'git checkout master 'git checkout master &&
git apply --stat --summary B.diff' git apply --stat --summary B.diff'


test_expect_success 'stat binary diff (copy) -- should not fail.' \ test_expect_success 'stat binary diff (copy) -- should not fail.' \
'git checkout master 'git checkout master &&
git apply --stat --summary C.diff' git apply --stat --summary C.diff'


test_expect_success 'check binary diff -- should fail.' \ test_expect_success 'check binary diff -- should fail.' \
@ -69,11 +69,11 @@ test_expect_success \
' '


test_expect_success 'check binary diff with replacement.' \ test_expect_success 'check binary diff with replacement.' \
'git checkout master 'git checkout master &&
git apply --check --allow-binary-replacement BF.diff' git apply --check --allow-binary-replacement BF.diff'


test_expect_success 'check binary diff with replacement (copy).' \ test_expect_success 'check binary diff with replacement (copy).' \
'git checkout master 'git checkout master &&
git apply --check --allow-binary-replacement CF.diff' git apply --check --allow-binary-replacement CF.diff'


# Now we start applying them. # Now we start applying them.

View File

@ -89,7 +89,7 @@ test_expect_success 'apply --index from subdir of toplevel' '
test_expect_success 'apply from .git dir' ' test_expect_success 'apply from .git dir' '
cp postimage expected && cp postimage expected &&
cp preimage .git/file && cp preimage .git/file &&
cp preimage .git/objects/file cp preimage .git/objects/file &&
( (
cd .git && cd .git &&
git apply "$patch" git apply "$patch"
@ -100,7 +100,7 @@ test_expect_success 'apply from .git dir' '
test_expect_success 'apply from subdir of .git dir' ' test_expect_success 'apply from subdir of .git dir' '
cp postimage expected && cp postimage expected &&
cp preimage .git/file && cp preimage .git/file &&
cp preimage .git/objects/file cp preimage .git/objects/file &&
( (
cd .git/objects && cd .git/objects &&
git apply "$patch" git apply "$patch"

View File

@ -73,7 +73,7 @@ D=`pwd`
test_expect_success 'apply --whitespace=strip in subdir' ' test_expect_success 'apply --whitespace=strip in subdir' '


cd "$D" && cd "$D" &&
git config --unset-all apply.whitespace git config --unset-all apply.whitespace &&
rm -f sub/file1 && rm -f sub/file1 &&
cp saved sub/file1 && cp saved sub/file1 &&
git update-index --refresh && git update-index --refresh &&

View File

@ -31,7 +31,7 @@ test_expect_success 'apply same filename with independent changes' '
' '


test_expect_success 'apply same filename with overlapping changes' ' test_expect_success 'apply same filename with overlapping changes' '
git reset --hard git reset --hard &&
modify "s/^d/z/" same_fn && modify "s/^d/z/" same_fn &&
git diff > patch0 && git diff > patch0 &&
git add same_fn && git add same_fn &&
@ -44,8 +44,8 @@ test_expect_success 'apply same filename with overlapping changes' '
' '


test_expect_success 'apply same new filename after rename' ' test_expect_success 'apply same new filename after rename' '
git reset --hard git reset --hard &&
git mv same_fn new_fn git mv same_fn new_fn &&
modify "s/^d/z/" new_fn && modify "s/^d/z/" new_fn &&
git add new_fn && git add new_fn &&
git diff -M --cached > patch1 && git diff -M --cached > patch1 &&
@ -58,12 +58,12 @@ test_expect_success 'apply same new filename after rename' '
' '


test_expect_success 'apply same old filename after rename -- should fail.' ' test_expect_success 'apply same old filename after rename -- should fail.' '
git reset --hard git reset --hard &&
git mv same_fn new_fn git mv same_fn new_fn &&
modify "s/^d/z/" new_fn && modify "s/^d/z/" new_fn &&
git add new_fn && git add new_fn &&
git diff -M --cached > patch1 && git diff -M --cached > patch1 &&
git mv new_fn same_fn git mv new_fn same_fn &&
modify "s/^e/y/" same_fn && modify "s/^e/y/" same_fn &&
git diff >> patch1 && git diff >> patch1 &&
git reset --hard && git reset --hard &&
@ -71,13 +71,13 @@ test_expect_success 'apply same old filename after rename -- should fail.' '
' '


test_expect_success 'apply A->B (rename), C->A (rename), A->A -- should pass.' ' test_expect_success 'apply A->B (rename), C->A (rename), A->A -- should pass.' '
git reset --hard git reset --hard &&
git mv same_fn new_fn git mv same_fn new_fn &&
modify "s/^d/z/" new_fn && modify "s/^d/z/" new_fn &&
git add new_fn && git add new_fn &&
git diff -M --cached > patch1 && git diff -M --cached > patch1 &&
git commit -m "a rename" && git commit -m "a rename" &&
git mv other_fn same_fn git mv other_fn same_fn &&
modify "s/^e/y/" same_fn && modify "s/^e/y/" same_fn &&
git add same_fn && git add same_fn &&
git diff -M --cached >> patch1 && git diff -M --cached >> patch1 &&

View File

@ -44,7 +44,7 @@ test_expect_success 'criss-cross rename' '
git reset --hard && git reset --hard &&
mv file1 tmp && mv file1 tmp &&
mv file2 file1 && mv file2 file1 &&
mv file3 file2 mv file3 file2 &&
mv tmp file3 && mv tmp file3 &&
cp file1 file1-swapped && cp file1 file1-swapped &&
cp file2 file2-swapped && cp file2 file2-swapped &&

View File

@ -8,7 +8,7 @@ test_description='git apply filename consistency check'
. ./test-lib.sh . ./test-lib.sh


test_expect_success setup ' test_expect_success setup '
cat > bad1.patch <<EOF cat > bad1.patch <<EOF &&
diff --git a/f b/f diff --git a/f b/f
new file mode 100644 new file mode 100644
index 0000000..d00491f index 0000000..d00491f
@ -29,9 +29,9 @@ EOF
' '


test_expect_success 'apply diff with inconsistent filenames in headers' ' test_expect_success 'apply diff with inconsistent filenames in headers' '
test_must_fail git apply bad1.patch 2>err test_must_fail git apply bad1.patch 2>err &&
grep "inconsistent new filename" err grep "inconsistent new filename" err &&
test_must_fail git apply bad2.patch 2>err test_must_fail git apply bad2.patch 2>err &&
grep "inconsistent old filename" err grep "inconsistent old filename" err
' '



View File

@ -8,7 +8,7 @@ test_description='git apply submodule tests'
. ./test-lib.sh . ./test-lib.sh


test_expect_success setup ' test_expect_success setup '
cat > create-sm.patch <<EOF cat > create-sm.patch <<EOF &&
diff --git a/dir/sm b/dir/sm diff --git a/dir/sm b/dir/sm
new file mode 160000 new file mode 160000
index 0000000..0123456 index 0000000..0123456

View File

@ -219,7 +219,7 @@ test_expect_success 'am stays in branch' '


test_expect_success 'am --signoff does not add Signed-off-by: line if already there' ' test_expect_success 'am --signoff does not add Signed-off-by: line if already there' '
git format-patch --stdout HEAD^ >patch3 && git format-patch --stdout HEAD^ >patch3 &&
sed -e "/^Subject/ s,\[PATCH,Re: Re: Re: & 1/5 v2," patch3 >patch4 sed -e "/^Subject/ s,\[PATCH,Re: Re: Re: & 1/5 v2," patch3 >patch4 &&
rm -fr .git/rebase-apply && rm -fr .git/rebase-apply &&
git reset --hard && git reset --hard &&
git checkout HEAD^ && git checkout HEAD^ &&

View File

@ -35,7 +35,7 @@ test_expect_success 'setup' '
tr 1234 "\370\235\204\236")" a1 && tr 1234 "\370\235\204\236")" a1 &&


echo 5 >a1 && echo 5 >a1 &&
git commit --quiet -m "a 12 34 56 78" a1 git commit --quiet -m "a 12 34 56 78" a1 &&


echo 6 >a1 && echo 6 >a1 &&
git commit --quiet -m "Commit by someone else" \ git commit --quiet -m "Commit by someone else" \

View File

@ -191,7 +191,7 @@ test_expect_success 'git show <commits> leaves list of commits as given' '
test_expect_success 'setup case sensitivity tests' ' test_expect_success 'setup case sensitivity tests' '
echo case >one && echo case >one &&
test_tick && test_tick &&
git add one git add one &&
git commit -a -m Second git commit -a -m Second
' '


@ -341,7 +341,7 @@ test_expect_success 'set up more tangled history' '
test_commit octopus-b && test_commit octopus-b &&
git checkout master && git checkout master &&
test_commit seventh && test_commit seventh &&
git merge octopus-a octopus-b git merge octopus-a octopus-b &&
git merge reach git merge reach
' '



View File

@ -59,7 +59,7 @@ test_expect_success 'interrupted am --directory="frotz nitfol"' '
' '


test_expect_success 'apply to a funny path' ' test_expect_success 'apply to a funny path' '
with_sq="with'\''sq" with_sq="with'\''sq" &&
rm -fr .git/rebase-apply && rm -fr .git/rebase-apply &&
git reset --hard initial && git reset --hard initial &&
git am --directory="$with_sq" "$tm"/am-test-5-2 && git am --directory="$with_sq" "$tm"/am-test-5-2 &&

View File

@ -12,7 +12,7 @@ TRASH=`pwd`


test_expect_success \ test_expect_success \
'setup' \ 'setup' \
'rm -f .git/index* 'rm -f .git/index* &&
perl -e "print \"a\" x 4096;" > a && perl -e "print \"a\" x 4096;" > a &&
perl -e "print \"b\" x 4096;" > b && perl -e "print \"b\" x 4096;" > b &&
perl -e "print \"c\" x 4096;" > c && perl -e "print \"c\" x 4096;" > c &&

View File

@ -8,7 +8,7 @@ test_description='mmap sliding window tests'


test_expect_success \ test_expect_success \
'setup' \ 'setup' \
'rm -f .git/index* 'rm -f .git/index* &&
for i in a b c for i in a b c
do do
echo $i >$i && echo $i >$i &&
@ -48,7 +48,7 @@ test_expect_success \
git repack -a -d && git repack -a -d &&
test "`git count-objects`" = "0 objects, 0 kilobytes" && test "`git count-objects`" = "0 objects, 0 kilobytes" &&
pack2=`ls .git/objects/pack/*.pack` && pack2=`ls .git/objects/pack/*.pack` &&
test -f "$pack2" test -f "$pack2" &&
test "$pack1" \!= "$pack2"' test "$pack1" \!= "$pack2"'


test_expect_success \ test_expect_success \

View File

@ -8,7 +8,7 @@ test_description='pack index with 64-bit offsets and object CRC'


test_expect_success \ test_expect_success \
'setup' \ 'setup' \
'rm -rf .git 'rm -rf .git &&
git init && git init &&
git config pack.threads 1 && git config pack.threads 1 &&
i=1 && i=1 &&

View File

@ -91,7 +91,7 @@ test_expect_success 'setup' '
prev=$cur && prev=$cur &&
cur=$(($cur+1)) cur=$(($cur+1))
done && done &&
add B1 $A1 add B1 $A1 &&
echo $ATIP > .git/refs/heads/A && echo $ATIP > .git/refs/heads/A &&
echo $BTIP > .git/refs/heads/B && echo $BTIP > .git/refs/heads/B &&
git symbolic-ref HEAD refs/heads/B git symbolic-ref HEAD refs/heads/B

View File

@ -57,7 +57,7 @@ test_expect_success 'copy commit and tree but not blob by hand' '
cd cloned && cd cloned &&
git count-objects | sed -e "s/ *objects,.*//" git count-objects | sed -e "s/ *objects,.*//"
) ) && ) ) &&
test $cnt -eq 6 test $cnt -eq 6 &&


blob=$(git rev-parse HEAD:file | sed -e "s|..|&/|") && blob=$(git rev-parse HEAD:file | sed -e "s|..|&/|") &&
test -f "cloned/.git/objects/$blob" && test -f "cloned/.git/objects/$blob" &&

View File

@ -119,7 +119,7 @@ test_expect_success 'fetch must not resolve short tag name' '
test_expect_success 'fetch must not resolve short remote name' ' test_expect_success 'fetch must not resolve short remote name' '


cd "$D" && cd "$D" &&
git update-ref refs/remotes/six/HEAD HEAD git update-ref refs/remotes/six/HEAD HEAD &&


mkdir six && mkdir six &&
cd six && cd six &&

View File

@ -27,7 +27,7 @@ test_expect_success setup '
( (
cd two && git branch another cd two && git branch another
) && ) &&
git clone --mirror two three git clone --mirror two three &&
git clone one test git clone one test
' '



View File

@ -586,7 +586,7 @@ test_expect_success 'push --delete refuses src:dest refspecs' '
' '


test_expect_success 'warn on push to HEAD of non-bare repository' ' test_expect_success 'warn on push to HEAD of non-bare repository' '
mk_test heads/master mk_test heads/master &&
( (
cd testrepo && cd testrepo &&
git checkout master && git checkout master &&
@ -597,7 +597,7 @@ test_expect_success 'warn on push to HEAD of non-bare repository' '
' '


test_expect_success 'deny push to HEAD of non-bare repository' ' test_expect_success 'deny push to HEAD of non-bare repository' '
mk_test heads/master mk_test heads/master &&
( (
cd testrepo && cd testrepo &&
git checkout master && git checkout master &&
@ -607,7 +607,7 @@ test_expect_success 'deny push to HEAD of non-bare repository' '
' '


test_expect_success 'allow push to HEAD of bare repository (bare)' ' test_expect_success 'allow push to HEAD of bare repository (bare)' '
mk_test heads/master mk_test heads/master &&
( (
cd testrepo && cd testrepo &&
git checkout master && git checkout master &&
@ -619,7 +619,7 @@ test_expect_success 'allow push to HEAD of bare repository (bare)' '
' '


test_expect_success 'allow push to HEAD of non-bare repository (config)' ' test_expect_success 'allow push to HEAD of non-bare repository (config)' '
mk_test heads/master mk_test heads/master &&
( (
cd testrepo && cd testrepo &&
git checkout master && git checkout master &&

View File

@ -123,7 +123,7 @@ test_expect_success 'bob works and pushes again' '
( (
cd alice-pub && cd alice-pub &&
git cat-file commit master >../bob-work/commit git cat-file commit master >../bob-work/commit
) ) &&
( (
# This time Bob does not pull from Alice, and # This time Bob does not pull from Alice, and
# the master branch at her public repository points # the master branch at her public repository points

View File

@ -6,7 +6,7 @@ test_description='unpack-objects'


test_expect_success setup ' test_expect_success setup '
mkdir pub.git && mkdir pub.git &&
GIT_DIR=pub.git git init --bare GIT_DIR=pub.git git init --bare &&
GIT_DIR=pub.git git config receive.fsckobjects true && GIT_DIR=pub.git git config receive.fsckobjects true &&
mkdir work && mkdir work &&
( (

View File

@ -52,21 +52,21 @@ get_static_files() {
SMART=smart SMART=smart
export GIT_HTTP_EXPORT_ALL=1 export GIT_HTTP_EXPORT_ALL=1
test_expect_success 'direct refs/heads/master not found' ' test_expect_success 'direct refs/heads/master not found' '
log_div "refs/heads/master" log_div "refs/heads/master" &&
GET refs/heads/master "404 Not Found" GET refs/heads/master "404 Not Found"
' '
test_expect_success 'static file is ok' ' test_expect_success 'static file is ok' '
log_div "getanyfile default" log_div "getanyfile default" &&
get_static_files "200 OK" get_static_files "200 OK"
' '
SMART=smart_noexport SMART=smart_noexport
unset GIT_HTTP_EXPORT_ALL unset GIT_HTTP_EXPORT_ALL
test_expect_success 'no export by default' ' test_expect_success 'no export by default' '
log_div "no git-daemon-export-ok" log_div "no git-daemon-export-ok" &&
get_static_files "404 Not Found" get_static_files "404 Not Found"
' '
test_expect_success 'export if git-daemon-export-ok' ' test_expect_success 'export if git-daemon-export-ok' '
log_div "git-daemon-export-ok" log_div "git-daemon-export-ok" &&
(cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" && (cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
touch git-daemon-export-ok touch git-daemon-export-ok
) && ) &&
@ -75,47 +75,47 @@ test_expect_success 'export if git-daemon-export-ok' '
SMART=smart SMART=smart
export GIT_HTTP_EXPORT_ALL=1 export GIT_HTTP_EXPORT_ALL=1
test_expect_success 'static file if http.getanyfile true is ok' ' test_expect_success 'static file if http.getanyfile true is ok' '
log_div "getanyfile true" log_div "getanyfile true" &&
config http.getanyfile true && config http.getanyfile true &&
get_static_files "200 OK" get_static_files "200 OK"
' '
test_expect_success 'static file if http.getanyfile false fails' ' test_expect_success 'static file if http.getanyfile false fails' '
log_div "getanyfile false" log_div "getanyfile false" &&
config http.getanyfile false && config http.getanyfile false &&
get_static_files "403 Forbidden" get_static_files "403 Forbidden"
' '


test_expect_success 'http.uploadpack default enabled' ' test_expect_success 'http.uploadpack default enabled' '
log_div "uploadpack default" log_div "uploadpack default" &&
GET info/refs?service=git-upload-pack "200 OK" && GET info/refs?service=git-upload-pack "200 OK" &&
POST git-upload-pack 0000 "200 OK" POST git-upload-pack 0000 "200 OK"
' '
test_expect_success 'http.uploadpack true' ' test_expect_success 'http.uploadpack true' '
log_div "uploadpack true" log_div "uploadpack true" &&
config http.uploadpack true && config http.uploadpack true &&
GET info/refs?service=git-upload-pack "200 OK" && GET info/refs?service=git-upload-pack "200 OK" &&
POST git-upload-pack 0000 "200 OK" POST git-upload-pack 0000 "200 OK"
' '
test_expect_success 'http.uploadpack false' ' test_expect_success 'http.uploadpack false' '
log_div "uploadpack false" log_div "uploadpack false" &&
config http.uploadpack false && config http.uploadpack false &&
GET info/refs?service=git-upload-pack "403 Forbidden" && GET info/refs?service=git-upload-pack "403 Forbidden" &&
POST git-upload-pack 0000 "403 Forbidden" POST git-upload-pack 0000 "403 Forbidden"
' '


test_expect_success 'http.receivepack default disabled' ' test_expect_success 'http.receivepack default disabled' '
log_div "receivepack default" log_div "receivepack default" &&
GET info/refs?service=git-receive-pack "403 Forbidden" && GET info/refs?service=git-receive-pack "403 Forbidden" &&
POST git-receive-pack 0000 "403 Forbidden" POST git-receive-pack 0000 "403 Forbidden"
' '
test_expect_success 'http.receivepack true' ' test_expect_success 'http.receivepack true' '
log_div "receivepack true" log_div "receivepack true" &&
config http.receivepack true && config http.receivepack true &&
GET info/refs?service=git-receive-pack "200 OK" && GET info/refs?service=git-receive-pack "200 OK" &&
POST git-receive-pack 0000 "200 OK" POST git-receive-pack 0000 "200 OK"
' '
test_expect_success 'http.receivepack false' ' test_expect_success 'http.receivepack false' '
log_div "receivepack false" log_div "receivepack false" &&
config http.receivepack false && config http.receivepack false &&
GET info/refs?service=git-receive-pack "403 Forbidden" && GET info/refs?service=git-receive-pack "403 Forbidden" &&
POST git-receive-pack 0000 "403 Forbidden" POST git-receive-pack 0000 "403 Forbidden"

View File

@ -90,22 +90,22 @@ check () {
for type in basic parents parents-raw for type in basic parents parents-raw
do do
test_expect_success 'without grafts' " test_expect_success 'without grafts' "
rm -f .git/info/grafts rm -f .git/info/grafts &&
check $type $B2 -- $B2 $B1 $B0 check $type $B2 -- $B2 $B1 $B0
" "


test_expect_success 'with grafts' " test_expect_success 'with grafts' "
echo '$B0 $A2' >.git/info/grafts echo '$B0 $A2' >.git/info/grafts &&
check $type $B2 -- $B2 $B1 $B0 $A2 $A1 $A0 check $type $B2 -- $B2 $B1 $B0 $A2 $A1 $A0
" "


test_expect_success 'without grafts, with pathlimit' " test_expect_success 'without grafts, with pathlimit' "
rm -f .git/info/grafts rm -f .git/info/grafts &&
check $type $B2 subdir -- $B2 $B0 check $type $B2 subdir -- $B2 $B0
" "


test_expect_success 'with grafts, with pathlimit' " test_expect_success 'with grafts, with pathlimit' "
echo '$B0 $A2' >.git/info/grafts echo '$B0 $A2' >.git/info/grafts &&
check $type $B2 subdir -- $B2 $B0 $A2 $A0 check $type $B2 subdir -- $B2 $B0 $A2 $A0
" "



View File

@ -18,7 +18,7 @@ test_expect_success setup '


commit one && commit one &&


test_tick=$(($test_tick - 2400)) test_tick=$(($test_tick - 2400)) &&


commit two && commit two &&
commit three && commit three &&

View File

@ -131,7 +131,7 @@ test_expect_success 'unsynchronized clocks' '
R2=$(doit 3 R2 $R1) && R2=$(doit 3 R2 $R1) &&


PL=$(doit 4 PL $L2 $C2) && PL=$(doit 4 PL $L2 $C2) &&
PR=$(doit 4 PR $C2 $R2) PR=$(doit 4 PR $C2 $R2) &&


git name-rev $C2 >expected && git name-rev $C2 >expected &&



View File

@ -104,7 +104,7 @@ test_expect_success 'mark rename/delete as unmerged' '
test_tick && test_tick &&
git commit -m delete && git commit -m delete &&
git checkout -b rename HEAD^ && git checkout -b rename HEAD^ &&
git mv a1 a2 git mv a1 a2 &&
test_tick && test_tick &&
git commit -m rename && git commit -m rename &&
test_must_fail git merge delete && test_must_fail git merge delete &&

View File

@ -6,7 +6,7 @@ test_description='subtree merge strategy'


test_expect_success setup ' test_expect_success setup '


s="1 2 3 4 5 6 7 8" s="1 2 3 4 5 6 7 8" &&
for i in $s; do echo $i; done >hello && for i in $s; do echo $i; done >hello &&
git add hello && git add hello &&
git commit -m initial && git commit -m initial &&

View File

@ -517,13 +517,13 @@ test_expect_success '"parallel" side branch creation' '
add_line_into_file "2(para): line 2 on parallel branch" dir2/file2 && add_line_into_file "2(para): line 2 on parallel branch" dir2/file2 &&
PARA_HASH2=$(git rev-parse --verify HEAD) && PARA_HASH2=$(git rev-parse --verify HEAD) &&
add_line_into_file "3(para): line 3 on parallel branch" dir2/file3 && add_line_into_file "3(para): line 3 on parallel branch" dir2/file3 &&
PARA_HASH3=$(git rev-parse --verify HEAD) PARA_HASH3=$(git rev-parse --verify HEAD) &&
git merge -m "merge HASH4 and PARA_HASH3" "$HASH4" && git merge -m "merge HASH4 and PARA_HASH3" "$HASH4" &&
PARA_HASH4=$(git rev-parse --verify HEAD) PARA_HASH4=$(git rev-parse --verify HEAD) &&
add_line_into_file "5(para): add line on parallel branch" dir1/file1 && add_line_into_file "5(para): add line on parallel branch" dir1/file1 &&
PARA_HASH5=$(git rev-parse --verify HEAD) PARA_HASH5=$(git rev-parse --verify HEAD) &&
add_line_into_file "6(para): add line on parallel branch" dir2/file2 && add_line_into_file "6(para): add line on parallel branch" dir2/file2 &&
PARA_HASH6=$(git rev-parse --verify HEAD) PARA_HASH6=$(git rev-parse --verify HEAD) &&
git merge -m "merge HASH7 and PARA_HASH6" "$HASH7" && git merge -m "merge HASH7 and PARA_HASH6" "$HASH7" &&
PARA_HASH7=$(git rev-parse --verify HEAD) PARA_HASH7=$(git rev-parse --verify HEAD)
' '

View File

@ -15,7 +15,7 @@ test_description='recursive merge corner cases'
# #


test_expect_success setup ' test_expect_success setup '
ten="0 1 2 3 4 5 6 7 8 9" ten="0 1 2 3 4 5 6 7 8 9" &&
for i in $ten for i in $ten
do do
echo line $i in a sample file echo line $i in a sample file

View File

@ -60,7 +60,7 @@ test_expect_success 'checkout' '


test_expect_success 'checkout with local tracked branch' ' test_expect_success 'checkout with local tracked branch' '
git checkout master && git checkout master &&
git checkout follower >actual git checkout follower >actual &&
grep "is ahead of" actual grep "is ahead of" actual
' '



View File

@ -53,7 +53,7 @@ test_expect_success 'set up buggy branch' '
echo "line 12" >> hello && echo "line 12" >> hello &&
echo "line 13" >> hello && echo "line 13" >> hello &&
add_and_commit_file hello "2 more lines" && add_and_commit_file hello "2 more lines" &&
HASH6=$(git rev-parse --verify HEAD) HASH6=$(git rev-parse --verify HEAD) &&
echo "line 14" >> hello && echo "line 14" >> hello &&
echo "line 15" >> hello && echo "line 15" >> hello &&
echo "line 16" >> hello && echo "line 16" >> hello &&

View File

@ -18,7 +18,7 @@ test_expect_success PERL 'setup' '
# note: bar sorts before foo, so the first 'n' is always to skip 'bar' # note: bar sorts before foo, so the first 'n' is always to skip 'bar'


test_expect_success PERL 'saying "n" does nothing' ' test_expect_success PERL 'saying "n" does nothing' '
set_and_save_state dir/foo work work set_and_save_state dir/foo work work &&
(echo n; echo n) | git reset -p && (echo n; echo n) | git reset -p &&
verify_saved_state dir/foo && verify_saved_state dir/foo &&
verify_saved_state bar verify_saved_state bar
@ -42,14 +42,14 @@ test_expect_success PERL 'git reset -p HEAD^' '
# the failure case (and thus get out of the loop). # the failure case (and thus get out of the loop).


test_expect_success PERL 'git reset -p dir' ' test_expect_success PERL 'git reset -p dir' '
set_state dir/foo work work set_state dir/foo work work &&
(echo y; echo n) | git reset -p dir && (echo y; echo n) | git reset -p dir &&
verify_state dir/foo work head && verify_state dir/foo work head &&
verify_saved_state bar verify_saved_state bar
' '


test_expect_success PERL 'git reset -p -- foo (inside dir)' ' test_expect_success PERL 'git reset -p -- foo (inside dir)' '
set_state dir/foo work work set_state dir/foo work work &&
(echo y; echo n) | (cd dir && git reset -p -- foo) && (echo y; echo n) | (cd dir && git reset -p -- foo) &&
verify_state dir/foo work head && verify_state dir/foo work head &&
verify_saved_state bar verify_saved_state bar

View File

@ -40,7 +40,7 @@ test_expect_success '-C option copies only the message with --reset-author' '
test_tick && test_tick &&
git commit -a -C Initial --reset-author && git commit -a -C Initial --reset-author &&
echo "author $GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect && echo "author $GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect &&
author_header HEAD >actual author_header HEAD >actual &&
test_cmp expect actual && test_cmp expect actual &&


message_body Initial >expect && message_body Initial >expect &&

View File

@ -31,7 +31,7 @@ test_expect_success 'merge c1 with c2, c3, c4, ... c29' '
do do
refs="$refs c$i" refs="$refs c$i"
i=`expr $i + 1` i=`expr $i + 1`
done done &&
git merge $refs && git merge $refs &&
test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" && test "$(git rev-parse c1)" != "$(git rev-parse HEAD)" &&
i=1 && i=1 &&

View File

@ -54,7 +54,7 @@ test_expect_success 'custom mergetool' '


test_expect_success 'mergetool crlf' ' test_expect_success 'mergetool crlf' '
git config core.autocrlf true && git config core.autocrlf true &&
git checkout -b test2 branch1 git checkout -b test2 branch1 &&
test_must_fail git merge master >/dev/null 2>&1 && test_must_fail git merge master >/dev/null 2>&1 &&
( yes "" | git mergetool file1 >/dev/null 2>&1 ) && ( yes "" | git mergetool file1 >/dev/null 2>&1 ) &&
( yes "" | git mergetool file2 >/dev/null 2>&1 ) && ( yes "" | git mergetool file2 >/dev/null 2>&1 ) &&

View File

@ -452,7 +452,7 @@ test_expect_success 'outside of git repository' '
echo file1:hello && echo file1:hello &&
echo sub/file2:world echo sub/file2:world
} >non/expect.full && } >non/expect.full &&
echo file2:world >non/expect.sub echo file2:world >non/expect.sub &&
( (
GIT_CEILING_DIRECTORIES="$(pwd)/non/git" && GIT_CEILING_DIRECTORIES="$(pwd)/non/git" &&
export GIT_CEILING_DIRECTORIES && export GIT_CEILING_DIRECTORIES &&
@ -478,7 +478,7 @@ test_expect_success 'inside git repository but with --no-index' '
echo sub/file2:world echo sub/file2:world
} >is/expect.full && } >is/expect.full &&
: >is/expect.empty && : >is/expect.empty &&
echo file2:world >is/expect.sub echo file2:world >is/expect.sub &&
( (
cd is/git && cd is/git &&
git init && git init &&

View File

@ -190,7 +190,7 @@ test_expect_success "follow-parent is atomic" '
git svn init --minimize-url -i stunk "$svnrepo"/stunk && git svn init --minimize-url -i stunk "$svnrepo"/stunk &&
git svn fetch -i stunk && git svn fetch -i stunk &&
git svn init --minimize-url -i flunked "$svnrepo"/flunked && git svn init --minimize-url -i flunked "$svnrepo"/flunked &&
git svn fetch -i flunked git svn fetch -i flunked &&
test "`git rev-parse --verify refs/remotes/flunk@18`" \ test "`git rev-parse --verify refs/remotes/flunk@18`" \
= "`git rev-parse --verify refs/remotes/stunk`" && = "`git rev-parse --verify refs/remotes/stunk`" &&
test "`git rev-parse --verify refs/remotes/flunk~1`" \ test "`git rev-parse --verify refs/remotes/flunk~1`" \

View File

@ -16,7 +16,7 @@ rm -rf import


test_expect_success 'init, fetch and checkout repository' ' test_expect_success 'init, fetch and checkout repository' '
git svn init --rewrite-root=http://invalid.invalid/ "$svnrepo" && git svn init --rewrite-root=http://invalid.invalid/ "$svnrepo" &&
git svn fetch git svn fetch &&
git checkout -b mybranch ${remotes_git_svn} git checkout -b mybranch ${remotes_git_svn}
' '



View File

@ -24,7 +24,7 @@ test_expect_success 'initialize git svn' '
svn_cmd import -m "import for git svn" . "$svnrepo" svn_cmd import -m "import for git svn" . "$svnrepo"
) && ) &&
rm -rf import && rm -rf import &&
git svn init "$svnrepo" git svn init "$svnrepo" &&
git svn fetch git svn fetch
' '



View File

@ -18,39 +18,39 @@ test_expect_success 'load svn dump' "


test_expect_success 'all svn merges became git merge commits' ' test_expect_success 'all svn merges became git merge commits' '
unmarked=$(git rev-list --parents --all --grep=Merge | unmarked=$(git rev-list --parents --all --grep=Merge |
grep -v " .* " | cut -f1 -d" ") grep -v " .* " | cut -f1 -d" ") &&
[ -z "$unmarked" ] [ -z "$unmarked" ]
' '


test_expect_success 'cherry picks did not become git merge commits' ' test_expect_success 'cherry picks did not become git merge commits' '
bad_cherries=$(git rev-list --parents --all --grep=Cherry | bad_cherries=$(git rev-list --parents --all --grep=Cherry |
grep " .* " | cut -f1 -d" ") grep " .* " | cut -f1 -d" ") &&
[ -z "$bad_cherries" ] [ -z "$bad_cherries" ]
' '


test_expect_success 'svn non-merge merge commits did not become git merge commits' ' test_expect_success 'svn non-merge merge commits did not become git merge commits' '
bad_non_merges=$(git rev-list --parents --all --grep=non-merge | bad_non_merges=$(git rev-list --parents --all --grep=non-merge |
grep " .* " | cut -f1 -d" ") grep " .* " | cut -f1 -d" ") &&
[ -z "$bad_non_merges" ] [ -z "$bad_non_merges" ]
' '


test_expect_success 'commit made to merged branch is reachable from the merge' ' test_expect_success 'commit made to merged branch is reachable from the merge' '
before_commit=$(git rev-list --all --grep="trunk commit before merging trunk to b2") before_commit=$(git rev-list --all --grep="trunk commit before merging trunk to b2") &&
merge_commit=$(git rev-list --all --grep="Merge trunk to b2") merge_commit=$(git rev-list --all --grep="Merge trunk to b2") &&
not_reachable=$(git rev-list -1 $before_commit --not $merge_commit) not_reachable=$(git rev-list -1 $before_commit --not $merge_commit) &&
[ -z "$not_reachable" ] [ -z "$not_reachable" ]
' '


test_expect_success 'merging two branches in one commit is detected correctly' ' test_expect_success 'merging two branches in one commit is detected correctly' '
f1_commit=$(git rev-list --all --grep="make f1 branch from trunk") f1_commit=$(git rev-list --all --grep="make f1 branch from trunk") &&
f2_commit=$(git rev-list --all --grep="make f2 branch from trunk") f2_commit=$(git rev-list --all --grep="make f2 branch from trunk") &&
merge_commit=$(git rev-list --all --grep="Merge f1 and f2 to trunk") merge_commit=$(git rev-list --all --grep="Merge f1 and f2 to trunk") &&
not_reachable=$(git rev-list -1 $f1_commit $f2_commit --not $merge_commit) not_reachable=$(git rev-list -1 $f1_commit $f2_commit --not $merge_commit) &&
[ -z "$not_reachable" ] [ -z "$not_reachable" ]
' '


test_expect_failure 'everything got merged in the end' ' test_expect_failure 'everything got merged in the end' '
unmerged=$(git rev-list --all --not master) unmerged=$(git rev-list --all --not master) &&
[ -z "$unmerged" ] [ -z "$unmerged" ]
' '



View File

@ -321,7 +321,7 @@ test_expect_success \
'for p in .git/objects/pack/*.pack;do git verify-pack $p||exit;done' 'for p in .git/objects/pack/*.pack;do git verify-pack $p||exit;done'
test_expect_success \ test_expect_success \
'C: validate reuse existing blob' \ 'C: validate reuse existing blob' \
'test $newf = `git rev-parse --verify branch:file2/newf` 'test $newf = `git rev-parse --verify branch:file2/newf` &&
test $oldf = `git rev-parse --verify branch:file2/oldf`' test $oldf = `git rev-parse --verify branch:file2/oldf`'


cat >expect <<EOF cat >expect <<EOF

View File

@ -26,7 +26,7 @@ test_expect_success 'setup' '
test_tick && test_tick &&
git tag rein && git tag rein &&
git checkout -b wer HEAD^ && git checkout -b wer HEAD^ &&
echo lange > file2 echo lange > file2 &&
test_tick && test_tick &&
git commit -m sitzt file2 && git commit -m sitzt file2 &&
test_tick && test_tick &&

View File

@ -57,7 +57,7 @@ test_expect_success 'setup' '
# as argument to co -d # as argument to co -d
test_expect_success 'basic checkout' \ test_expect_success 'basic checkout' \
'GIT_CONFIG="$git_config" cvs -Q co -d cvswork master && 'GIT_CONFIG="$git_config" cvs -Q co -d cvswork master &&
test "$(echo $(grep -v ^D cvswork/CVS/Entries|cut -d/ -f2,3,5 | head -n 1))" = "empty/1.1/" test "$(echo $(grep -v ^D cvswork/CVS/Entries|cut -d/ -f2,3,5 | head -n 1))" = "empty/1.1/" &&
test "$(echo $(grep -v ^D cvswork/CVS/Entries|cut -d/ -f2,3,5 | sed -ne \$p))" = "secondrootfile/1.1/"' test "$(echo $(grep -v ^D cvswork/CVS/Entries|cut -d/ -f2,3,5 | sed -ne \$p))" = "secondrootfile/1.1/"'


#------------------------ #------------------------

View File

@ -70,7 +70,7 @@ test_expect_success 'setup' '
mkdir subdir && mkdir subdir &&
echo "Another text file" > subdir/file.h && echo "Another text file" > subdir/file.h &&
echo "Another binary: Q (this time CR)" | q_to_cr > subdir/withCr.bin && echo "Another binary: Q (this time CR)" | q_to_cr > subdir/withCr.bin &&
echo "Mixed up NUL, but marked text: Q <- there" | q_to_nul > mixedUp.c echo "Mixed up NUL, but marked text: Q <- there" | q_to_nul > mixedUp.c &&
echo "Unspecified" > subdir/unspecified.other && echo "Unspecified" > subdir/unspecified.other &&
echo "/*.bin -crlf" > .gitattributes && echo "/*.bin -crlf" > .gitattributes &&
echo "/*.c crlf" >> .gitattributes && echo "/*.c crlf" >> .gitattributes &&