t7610: cd inside subshell instead of around
authorBrian Gernhardt <brian@gernhardtsoftware.com>
Tue, 24 Aug 2010 02:37:24 +0000 (22:37 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 24 Aug 2010 16:33:09 +0000 (09:33 -0700)
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>
t/t7610-mergetool.sh

index f5a7bf47e9c563139676dd0a4ce1ab7098d89011..3bd74042ef46ee8b4e4477d1c23ba0914963de33 100755 (executable)
@@ -68,22 +68,24 @@ test_expect_success 'mergetool crlf' '
 '
 
 test_expect_success 'mergetool in subdir' '
-    git checkout -b test3 branch1
-    cd subdir && (
-    test_must_fail git merge master >/dev/null 2>&1 &&
-    ( yes "" | git mergetool file3 >/dev/null 2>&1 ) &&
-    test "$(cat file3)" = "master new sub") &&
-    cd ..
+    git checkout -b test3 branch1 &&
+    (
+       cd subdir &&
+       test_must_fail git merge master >/dev/null 2>&1 &&
+       ( yes "" | git mergetool file3 >/dev/null 2>&1 ) &&
+       test "$(cat file3)" = "master new sub"
+    )
 '
 
 test_expect_success 'mergetool on file in parent dir' '
-    cd subdir && (
-    ( yes "" | git mergetool ../file1 >/dev/null 2>&1 ) &&
-    ( yes "" | git mergetool ../file2 >/dev/null 2>&1 ) &&
-    test "$(cat ../file1)" = "master updated" &&
-    test "$(cat ../file2)" = "master new" &&
-    git commit -m "branch1 resolved with mergetool - subdir") &&
-    cd ..
+    (
+       cd subdir &&
+       ( yes "" | git mergetool ../file1 >/dev/null 2>&1 ) &&
+       ( yes "" | git mergetool ../file2 >/dev/null 2>&1 ) &&
+       test "$(cat ../file1)" = "master updated" &&
+       test "$(cat ../file2)" = "master new" &&
+       git commit -m "branch1 resolved with mergetool - subdir"
+    )
 '
 
 test_expect_success 'mergetool skips autoresolved' '
@@ -96,16 +98,17 @@ test_expect_success 'mergetool skips autoresolved' '
 '
 
 test_expect_success 'mergetool merges all from subdir' '
-    cd subdir && (
-    git config rerere.enabled false &&
-    test_must_fail git merge master &&
-    git mergetool --no-prompt &&
-    test "$(cat ../file1)" = "master updated" &&
-    test "$(cat ../file2)" = "master new" &&
-    test "$(cat file3)" = "master new sub" &&
-    git add ../file1 ../file2 file3 &&
-    git commit -m "branch2 resolved by mergetool from subdir") &&
-    cd ..
+    (
+       cd subdir &&
+       git config rerere.enabled false &&
+       test_must_fail git merge master &&
+       git mergetool --no-prompt &&
+       test "$(cat ../file1)" = "master updated" &&
+       test "$(cat ../file2)" = "master new" &&
+       test "$(cat file3)" = "master new sub" &&
+       git add ../file1 ../file2 file3 &&
+       git commit -m "branch2 resolved by mergetool from subdir"
+    )
 '
 
 test_done