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

[PATCH 06/11] t7001: change (cd <path> && git foo) to (git -C <path> foo)

From
shubham verma <shubhunic@gmail.com>
Date
Sep 25, 2020, 17:02 UTC
Message-ID
<20200925170256.11490-7-shubhunic@gmail.com>
In-Reply-To
<20200925170256.11490-1-shubhunic@gmail.com>
From: Shubham Verma <shubhunic@gmail.com>

Let's avoid the use of `cd` outside subshells by encapsulating them inside subshells or by using `git -C <dir> ...`.

Signed-off-by: shubham verma <shubhunic@gmail.com>
---
 t/t7001-mv.sh | 45 +++++++++++----------------------------------
 1 file changed, 11 insertions(+), 34 deletions(-)
diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh
index 7581e4b407..3a3ace6d73 100755
--- a/t/t7001-mv.sh
+++ b/t/t7001-mv.sh
@@ -11,12 +11,11 @@ test_expect_success 'prepare reference tree' '
 '
 
 test_expect_success 'moving the file out of subdirectory' '
-	cd path0 && git mv COPYING ../path1/COPYING
+	git -C path0 mv COPYING ../path1/COPYING
 '
 
-# in path0 currently
 test_expect_success 'commiting the change' '
-	cd .. && git commit -m move-out -a
+	git commit -m move-out -a
 '
 
 test_expect_success 'checking the commit' '
@@ -25,12 +24,11 @@ test_expect_success 'checking the commit' '
 '
 
 test_expect_success 'moving the file back into subdirectory' '
-	cd path0 && git mv ../path1/COPYING COPYING
+	git -C path0 mv ../path1/COPYING COPYING
 '
 
-# in path0 currently
 test_expect_success 'commiting the change' '
-	cd .. && git commit -m move-in -a
+	git commit -m move-in -a
 '
 
 test_expect_success 'checking the commit' '
@@ -324,10 +322,7 @@ test_expect_success 'git mv moves a submodule with a .git directory and no .gitm
 	git mv sub mod/sub &&
 	! test -e sub &&
 	[ "$entry" = "$(git ls-files --stage mod/sub | cut -f 1)" ] &&
-	(
-		cd mod/sub &&
-		git status
-	) &&
+	git -C mod/sub status &&
 	git update-index --refresh &&
 	git diff-files --quiet
 '
@@ -347,10 +342,7 @@ test_expect_success 'git mv moves a submodule with a .git directory and .gitmodu
 	git mv sub mod/sub &&
 	! test -e sub &&
 	[ "$entry" = "$(git ls-files --stage mod/sub | cut -f 1)" ] &&
-	(
-		cd mod/sub &&
-		git status
-	) &&
+	git -C mod/sub status &&
 	echo mod/sub >expected &&
 	git config -f .gitmodules submodule.sub.path >actual &&
 	test_cmp expected actual &&
@@ -364,16 +356,10 @@ test_expect_success 'git mv moves a submodule with gitfile' '
 	git submodule update &&
 	entry="$(git ls-files --stage sub | cut -f 1)" &&
 	mkdir mod &&
-	(
-		cd mod &&
-		git mv ../sub/ .
-	) &&
+	git -C mod mv ../sub/ . &&
 	! test -e sub &&
 	[ "$entry" = "$(git ls-files --stage mod/sub | cut -f 1)" ] &&
-	(
-		cd mod/sub &&
-		git status
-	) &&
+	git -C mod/sub status &&
 	echo mod/sub >expected &&
 	git config -f .gitmodules submodule.sub.path >actual &&
 	test_cmp expected actual &&
@@ -392,10 +378,7 @@ test_expect_success 'mv does not complain when no .gitmodules file is found' '
 	test_must_be_empty actual.err &&
 	! test -e sub &&
 	[ "$entry" = "$(git ls-files --stage mod/sub | cut -f 1)" ] &&
-	(
-		cd mod/sub &&
-		git status
-	) &&
+	git -C mod/sub status &&
 	git update-index --refresh &&
 	git diff-files --quiet
 '
@@ -416,10 +399,7 @@ test_expect_success 'mv will error out on a modified .gitmodules file unless sta
 	test_must_be_empty actual.err &&
 	! test -e sub &&
 	[ "$entry" = "$(git ls-files --stage mod/sub | cut -f 1)" ] &&
-	(
-		cd mod/sub &&
-		git status
-	) &&
+	git -C mod/sub status &&
 	git update-index --refresh &&
 	git diff-files --quiet
 '
@@ -437,10 +417,7 @@ test_expect_success 'mv issues a warning when section is not found in .gitmodule
 	test_i18ncmp expect.err actual.err &&
 	! test -e sub &&
 	[ "$entry" = "$(git ls-files --stage mod/sub | cut -f 1)" ] &&
-	(
-		cd mod/sub &&
-		git status
-	) &&
+	git -C mod/sub status &&
 	git update-index --refresh &&
 	git diff-files --quiet
 '
-- 
2.25.1
Previous: shubham vermaNext: Eric Sunshine
Message 12 of 27 in “Modernizing the t7001 test script”
  1. 00/11 Modernizing the t7001 test scriptshubham verma, Sep 25, 2020
  2. 01/11 t7001: convert tests from the old style to the current styleshubham verma, Sep 25, 2020
  3. Eric SunshineSep 25, 2020
  4. 02/11 t7001: use TAB instead of spacesshubham verma, Sep 25, 2020
  5. Eric SunshineSep 25, 2020
  6. 03/11 t7001: remove unnecessary blank linesshubham verma, Sep 25, 2020
  7. Eric SunshineSep 25, 2020
  8. Junio C HamanoSep 25, 2020
  9. 04/11 t7001: change the style for cd according to subshellshubham verma, Sep 25, 2020
  10. Eric SunshineSep 25, 2020
  11. 05/11 t7001: remove whitespace after redirect operatorsshubham verma, Sep 25, 2020
  12. 06/11 t7001: change (cd <path> && git foo) to (git -C <path> foo)shubham verma, Sep 25, 2020
  13. Eric SunshineSep 25, 2020
  14. 07/11 t7001: use ': >' rather than 'touch'shubham verma, Sep 25, 2020
  15. Eric SunshineSep 25, 2020
  16. Junio C HamanoSep 25, 2020
  17. 08/11 t7001: put each command on a separate lineshubham verma, Sep 25, 2020
  18. Eric SunshineSep 25, 2020
  19. 09/11 t7001: use here-docs instead of echoshubham verma, Sep 25, 2020
  20. Junio C HamanoSep 25, 2020
  21. 10/11 t7001: use `test` rather than `[`shubham verma, Sep 25, 2020
  22. 11/11 t7001: move cleanup code from outside the tests into themshubham verma, Sep 25, 2020
  23. Eric SunshineSep 25, 2020
  24. Junio C HamanoSep 25, 2020
  25. Eric SunshineSep 25, 2020
  26. Shubham VermaOct 1, 2020
  27. Junio C HamanoDec 22, 2020

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.