git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] t7610: cd inside subshell instead of around

From
Brian Gernhardt <brian@gernhardtsoftware.com>
Date
Aug 24, 2010, 02:37 UTC
Message-ID
<1282617444-641-1-git-send-email-brian@gernhardtsoftware.com>
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>
---
 t/t7610-mergetool.sh |   49 ++++++++++++++++++++++++++-----------------------
 1 files changed, 26 insertions(+), 23 deletions(-)
diff --git a/t/t7610-mergetool.sh b/t/t7610-mergetool.sh
index f5a7bf4..3c436e1 100755
--- a/t/t7610-mergetool.sh
+++ b/t/t7610-mergetool.sh
@@ -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
-- 
1.7.2.2.399.g628fd
Next: Jonathan Nieder
Message 1 of 8 in “t7610: cd inside subshell instead of around”
  1. t7610: cd inside subshell instead of aroundBrian Gernhardt, Aug 24, 2010
  2. Jonathan NiederAug 24, 2010
  3. Brian GernhardtAug 24, 2010
  4. Jonathan NiederAug 24, 2010
  5. t7610 (mergetool): more nitpicksJonathan Nieder, Aug 25, 2010
  6. David AguilarAug 25, 2010
  7. Charles BaileyAug 25, 2010
  8. David AguilarAug 26, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.