t7610: cd inside subshell instead of around

Instead of using `cd dir && (...) && cd..` use `(cd dir && ...)`

This ensures that the test doesn't get caught in the subdirectory if
there is an error in the subshell.

Signed-off-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Brian Gernhardt 2010-08-23 22:37:24 -04:00 committed by Junio C Hamano
parent bc38219f50
commit 25641fcdb0
1 changed files with 26 additions and 23 deletions

View File

@ -68,22 +68,24 @@ test_expect_success 'mergetool crlf' '
' '


test_expect_success 'mergetool in subdir' ' test_expect_success 'mergetool in subdir' '
git checkout -b test3 branch1 git checkout -b test3 branch1 &&
cd subdir && ( (
test_must_fail git merge master >/dev/null 2>&1 && cd subdir &&
( yes "" | git mergetool file3 >/dev/null 2>&1 ) && test_must_fail git merge master >/dev/null 2>&1 &&
test "$(cat file3)" = "master new sub") && ( yes "" | git mergetool file3 >/dev/null 2>&1 ) &&
cd .. test "$(cat file3)" = "master new sub"
)
' '


test_expect_success 'mergetool on file in parent dir' ' test_expect_success 'mergetool on file in parent dir' '
cd subdir && ( (
( yes "" | git mergetool ../file1 >/dev/null 2>&1 ) && cd subdir &&
( yes "" | git mergetool ../file2 >/dev/null 2>&1 ) && ( yes "" | git mergetool ../file1 >/dev/null 2>&1 ) &&
test "$(cat ../file1)" = "master updated" && ( yes "" | git mergetool ../file2 >/dev/null 2>&1 ) &&
test "$(cat ../file2)" = "master new" && test "$(cat ../file1)" = "master updated" &&
git commit -m "branch1 resolved with mergetool - subdir") && test "$(cat ../file2)" = "master new" &&
cd .. git commit -m "branch1 resolved with mergetool - subdir"
)
' '


test_expect_success 'mergetool skips autoresolved' ' test_expect_success 'mergetool skips autoresolved' '
@ -96,16 +98,17 @@ test_expect_success 'mergetool skips autoresolved' '
' '


test_expect_success 'mergetool merges all from subdir' ' test_expect_success 'mergetool merges all from subdir' '
cd subdir && ( (
git config rerere.enabled false && cd subdir &&
test_must_fail git merge master && git config rerere.enabled false &&
git mergetool --no-prompt && test_must_fail git merge master &&
test "$(cat ../file1)" = "master updated" && git mergetool --no-prompt &&
test "$(cat ../file2)" = "master new" && test "$(cat ../file1)" = "master updated" &&
test "$(cat file3)" = "master new sub" && test "$(cat ../file2)" = "master new" &&
git add ../file1 ../file2 file3 && test "$(cat file3)" = "master new sub" &&
git commit -m "branch2 resolved by mergetool from subdir") && git add ../file1 ../file2 file3 &&
cd .. git commit -m "branch2 resolved by mergetool from subdir"
)
' '


test_done test_done