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

[PATCH 05/10] t9107-git-svn-migrate.sh: use the $( ... ) construct for command substitution

From
Elia Pinto <gitter.spiros@gmail.com>
Date
Jan 12, 2016, 10:45 UTC
Message-ID
<1452595518-38149-6-git-send-email-gitter.spiros@gmail.com>
In-Reply-To
<1452595518-38149-1-git-send-email-gitter.spiros@gmail.com>

The Git CodingGuidelines prefer the $(...) construct for command substitution instead of using the backquotes `...`.

The backquoted form is the traditional method for command substitution, and is supported by POSIX. However, all but the simplest uses become complicated quickly. In particular, embedded command substitutions and/or the use of double quotes require careful escaping with the backslash character.

The patch was generated by:
for _f in $(find . -name "*.sh")
do
	perl -i -pe 'BEGIN{undef $/;} s/`(.+?)`/\$(\1)/smg'  "${_f}"
done
and then carefully proof-read.
Signed-off-by: Elia Pinto <gitter.spiros@gmail.com>
---
 t/t9107-git-svn-migrate.sh | 28 ++++++++++++++--------------
 1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/t/t9107-git-svn-migrate.sh b/t/t9107-git-svn-migrate.sh
index 6e69fc4..155b8bf 100755
--- a/t/t9107-git-svn-migrate.sh
+++ b/t/t9107-git-svn-migrate.sh
@@ -24,10 +24,10 @@ test_expect_success 'setup old-looking metadata' '
 	git update-ref -d refs/${remotes_git_svn} refs/${remotes_git_svn}
 	'
 
-head=`git rev-parse --verify refs/heads/git-svn-HEAD^0`
+head=$(git rev-parse --verify refs/heads/git-svn-HEAD^0)
 test_expect_success 'git-svn-HEAD is a real HEAD' "test -n '$head'"
 
-svnrepo_escaped=`echo $svnrepo | sed 's/ /%20/'`
+svnrepo_escaped=$(echo $svnrepo | sed 's/ /%20/')
 
 test_expect_success 'initialize old-style (v0) git svn layout' '
 	mkdir -p "$GIT_DIR"/git-svn/info "$GIT_DIR"/svn/info &&
@@ -38,7 +38,7 @@ test_expect_success 'initialize old-style (v0) git svn layout' '
 	git rev-parse --verify refs/${remotes_git_svn}^0 &&
 	git rev-parse --verify refs/remotes/svn^0 &&
 	test "$(git config --get svn-remote.svn.url)" = "$svnrepo_escaped" &&
-	test `git config --get svn-remote.svn.fetch` = \
+	test $(git config --get svn-remote.svn.fetch) = \
              ":refs/${remotes_git_svn}"
 	'
 
@@ -46,10 +46,10 @@ test_expect_success 'initialize a multi-repository repo' '
 	git svn init "$svnrepo" -T trunk -t tags -b branches &&
 	git config --get-all svn-remote.svn.fetch > fetch.out &&
 	grep "^trunk:refs/remotes/origin/trunk$" fetch.out &&
-	test -n "`git config --get svn-remote.svn.branches \
-	            "^branches/\*:refs/remotes/origin/\*$"`" &&
-	test -n "`git config --get svn-remote.svn.tags \
-	            "^tags/\*:refs/remotes/origin/tags/\*$"`" &&
+	test -n "$(git config --get svn-remote.svn.branches \
+	            "^branches/\*:refs/remotes/origin/\*$")" &&
+	test -n "$(git config --get svn-remote.svn.tags \
+	            "^tags/\*:refs/remotes/origin/tags/\*$")" &&
 	git config --unset svn-remote.svn.branches \
 	                        "^branches/\*:refs/remotes/origin/\*$" &&
 	git config --unset svn-remote.svn.tags \
@@ -75,28 +75,28 @@ test_expect_success 'multi-fetch works on partial urls + paths' "
 	for i in trunk a b tags/0.1 tags/0.2 tags/0.3; do
 		git rev-parse --verify refs/remotes/origin/\$i^0 >> refs.out || exit 1;
 	    done &&
-	test -z \"\`sort < refs.out | uniq -d\`\" &&
+	test -z \"\$(sort < refs.out | uniq -d)\" &&
 	for i in trunk a b tags/0.1 tags/0.2 tags/0.3; do
 	  for j in trunk a b tags/0.1 tags/0.2 tags/0.3; do
 		if test \$j != \$i; then continue; fi
-	    test -z \"\`git diff refs/remotes/origin/\$i \
-	                         refs/remotes/origin/\$j\`\" ||exit 1; done; done
+	    test -z \"\$(git diff refs/remotes/origin/\$i \
+	                         refs/remotes/origin/\$j)\" ||exit 1; done; done
 	"
 
 test_expect_success 'migrate --minimize on old inited layout' '
 	git config --unset-all svn-remote.svn.fetch &&
 	git config --unset-all svn-remote.svn.url &&
 	rm -rf "$GIT_DIR"/svn &&
-	for i in `cat fetch.out`; do
-		path=`expr $i : "\([^:]*\):.*$"`
-		ref=`expr $i : "[^:]*:\(refs/remotes/.*\)$"`
+	for i in $(cat fetch.out); do
+		path=$(expr $i : "\([^:]*\):.*$")
+		ref=$(expr $i : "[^:]*:\(refs/remotes/.*\)$")
 		if test -z "$ref"; then continue; fi
 		if test -n "$path"; then path="/$path"; fi
 		( mkdir -p "$GIT_DIR"/svn/$ref/info/ &&
 		echo "$svnrepo"$path > "$GIT_DIR"/svn/$ref/info/url ) || exit 1;
 	done &&
 	git svn migrate --minimize &&
-	test -z "`git config -l | grep "^svn-remote\.git-svn\."`" &&
+	test -z "$(git config -l | grep "^svn-remote\.git-svn\.")" &&
 	git config --get-all svn-remote.svn.fetch > fetch.out &&
 	grep "^trunk:refs/remotes/origin/trunk$" fetch.out &&
 	grep "^branches/a:refs/remotes/origin/a$" fetch.out &&
-- 
2.5.0
Previous: Elia PintoNext: Elia Pinto
Message 7 of 12 in “use the $( ... ) construct for command substitution”
  1. 00/10 use the $( ... ) construct for command substitutionElia Pinto, Jan 12, 2016
  2. 01/10 t9100-git-svn-basic.sh: use the $( ... ) construct for command substitutionElia Pinto, Jan 12, 2016
  3. Junio C HamanoJan 12, 2016
  4. 02/10 t9101-git-svn-props.sh: use the $( ... ) construct for command substitutionElia Pinto, Jan 12, 2016
  5. 03/10 t9104-git-svn-follow-parent.sh: use the $( ... ) construct for command substitutionElia Pinto, Jan 12, 2016
  6. 04/10 t9105-git-svn-commit-diff.sh: use the $( ... ) construct for command substitutionElia Pinto, Jan 12, 2016
  7. 05/10 t9107-git-svn-migrate.sh: use the $( ... ) construct for command substitutionElia Pinto, Jan 12, 2016
  8. 06/10 t9108-git-svn-glob.sh: use the $( ... ) construct for command substitutionElia Pinto, Jan 12, 2016
  9. 07/10 t9109-git-svn-multi-glob.sh: use the $( ... ) construct for command substitutionElia Pinto, Jan 12, 2016
  10. 08/10 t9110-git-svn-use-svm-props.sh: use the $( ... ) construct for command substitutionElia Pinto, Jan 12, 2016
  11. 09/10 t9114-git-svn-dcommit-merge.sh: use the $( ... ) construct for command substitutionElia Pinto, Jan 12, 2016
  12. 10/10 t9118-git-svn-funky-branch-names.sh: use the $( ... ) construct for command substitutionElia Pinto, Jan 12, 2016

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.