threads / patch / 25375

patcht/t5560: use `X=Y && export X' not `export X=Y'

Subject: [PATCH] t/t5560: use `X=Y && export X' not `export X=Y'

## tl;dr

5 messages between Oct 7, 2010 and Oct 13, 2010. Diffs are folded; open one to read it.

replies: 4people: 4as markdown or json

Ævar Arnfjörð Bjarmason· Oct 7, 2010, 07:47 UTC · lore

Change t/t5560-http-backend-noserver.sh to use the `X=Y && export X' style instead of `export X=Y'. The latter doesn't work on all POSIX shells.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 t/t5560-http-backend-noserver.sh |   17 ++++++++++++-----
 1 files changed, 12 insertions(+), 5 deletions(-)
Show changes to t/t5560-http-backend-noserver.sh +12 −5
diff --git a/t/t5560-http-backend-noserver.sh b/t/t5560-http-backend-noserver.sh
index 406432e..effe797 100755
--- a/t/t5560-http-backend-noserver.sh
+++ b/t/t5560-http-backend-noserver.sh
@@ -5,7 +5,11 @@ test_description='test git-http-backend-noserver'
 
 HTTPD_DOCUMENT_ROOT_PATH="$TRASH_DIRECTORY"
 
-test_have_prereq MINGW && export GREP_OPTIONS=-U
+if test_have_prereq MINGW
+then
+	GREP_OPTIONS=-U
+	export GREP_OPTIONS
+fi
 
 run_backend() {
 	echo "$2" |
@@ -15,7 +19,8 @@ run_backend() {
 }
 
 GET() {
-	export REQUEST_METHOD="GET" &&
+	REQUEST_METHOD="GET" &&
+	export REQUEST_METHOD &&
 	run_backend "/repo.git/$1" &&
 	unset REQUEST_METHOD &&
 	if ! grep "Status" act.out >act
@@ -27,8 +32,9 @@ GET() {
 }
 
 POST() {
-	export REQUEST_METHOD="POST" &&
-	export CONTENT_TYPE="application/x-$1-request" &&
+	REQUEST_METHOD="POST" &&
+	CONTENT_TYPE="application/x-$1-request" &&
+	export REQUEST_METHOD CONTENT_TYPE &&
 	run_backend "/repo.git/$1" "$2" &&
 	unset REQUEST_METHOD &&
 	unset CONTENT_TYPE &&
@@ -47,7 +53,8 @@ log_div() {
 . "$TEST_DIRECTORY"/t556x_common
 
 expect_aliased() {
-	export REQUEST_METHOD="GET" &&
+	REQUEST_METHOD="GET" &&
+	export REQUEST_METHOD &&
 	if test $1 = 0; then
 		run_backend "$2"
 	else
-- 
1.7.3.1.50.g1e633
Matthieu Moy· Oct 7, 2010, 07:55 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH] t/t5560: use `X=Y && export X' not `export X=Y'

Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
> Change t/t5560-http-backend-noserver.sh to use the `X=Y && export X'
> style instead of `export X=Y'. The latter doesn't work on all POSIX
> shells.
According to
git grep '\<export [A-Za-z_]*='
there seem to be a couple of other instances of this.
-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Ævar Arnfjörð Bjarmason· Oct 7, 2010, 08:09 UTC · re: Matthieu Moy · lore

Re: [PATCH] t/t5560: use `X=Y && export X' not `export X=Y'

On Thu, Oct 7, 2010 at 07:55, Matthieu Moy <Matthieu.Moy@grenoble-inp.fr> wrote:
Show 11 quoted lines
> Ęvar Arnfjörš Bjarmason <avarab@gmail.com> writes:
>
>> Change t/t5560-http-backend-noserver.sh to use the `X=Y && export X'
>> style instead of `export X=Y'. The latter doesn't work on all POSIX
>> shells.
>
> According to
>
> git grep '\<export [A-Za-z_]*='
>
> there seem to be a couple of other instances of this.

Yeah, the ones in Documentation/*.txt are OK IMO. The users reading the docs probably don't have a shell old enough to complain about this.

Likewise for contrib/hg-to-git/hg-to-git.py and gitweb/INSTALL.
These we probably want to fix:
    git-am.sh:          export GIT_MERGE_VERBOSITY=0
    git-rebase.sh:          export GIT_MERGE_VERBOSITY=1
    git-stash.sh:           export GIT_MERGE_VERBOSITY=0
and maybe this:
    git-gui/lib/shortcut.tcl:                               puts $fd
"export PATH=[sq [file dirname $::_git]]:\$PATH &&"
This is the only other thing in the test suite:
    t/t1509-root-worktree.sh:export GIT_DIR="$TRASH_DIRECTORY/.git"
    t/t1509-root-worktree.sh:export GIT_WORK_TREE=/
    t/t1509-root-worktree.sh:export GIT_DIR="$(echo
$TRASH_DIRECTORY|sed 's,^/,,')/.git"

But I didn't touch that since nobody runs that test anyway, and if they do having a strict POSIX shell is the least of their problems.

Clemens Buchacher· Oct 10, 2010, 17:20 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH] t/t5560: use `X=Y && export X' not `export X=Y'

On Thu, Oct 07, 2010 at 08:09:34AM +0000, Ævar Arnfjörð Bjarmason wrote:
Show 6 quoted lines
> >
> > According to
> >
> > git grep '\<export [A-Za-z_]*='
> >
> > there seem to be a couple of other instances of this.
What about t556x_common?
 export GIT_HTTP_EXPORT_ALL=1
Clemens
Junio C Hamano· Oct 13, 2010, 18:36 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: [PATCH] t/t5560: use `X=Y && export X' not `export X=Y'

Let's do this instead.
 * One patch to clean things up in all of 'maint';
 * Another to clean the remainder that are in 'master'.
Here is the one for 'maint' to make the output from
    $ git grep '^[ 	]*export .*=' -- '*.sh'
empty.
-- >8 --
Subject: shell portability: no "export VAR=VAL"
It is more portable to say "VAR=VAL && export VAR" instead.
Noticed by Ævar.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 git-am.sh                        |    2 +-
 git-rebase.sh                    |    2 +-
 git-stash.sh                     |    2 +-
 t/t1509-root-worktree.sh         |   28 ++++++++++++++--------------
 t/t5560-http-backend-noserver.sh |    8 ++++----
 t/t556x_common                   |    4 ++--
 6 files changed, 23 insertions(+), 23 deletions(-)
Show changes to 6 files +23 −23

git-am.sh, git-rebase.sh, git-stash.sh, t/t1509-root-worktree.sh, t/t5560-http-backend-noserver.sh, t/t556x_common

diff --git a/git-am.sh b/git-am.sh
index e7f008c..5f24948 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -137,7 +137,7 @@ It does not apply to blobs recorded in its index."
     export GITHEAD_$his_tree
     if test -n "$GIT_QUIET"
     then
-	    export GIT_MERGE_VERBOSITY=0
+	    GIT_MERGE_VERBOSITY=0 && export GIT_MERGE_VERBOSITY
     fi
     git-merge-recursive $orig_tree -- HEAD $his_tree || {
 	    git rerere $allow_rerere_autoupdate
diff --git a/git-rebase.sh b/git-rebase.sh
index 3335cee..e5df23b 100755
--- a/git-rebase.sh
+++ b/git-rebase.sh
@@ -111,7 +111,7 @@ call_merge () {
 	export GITHEAD_$cmt GITHEAD_$hd
 	if test -n "$GIT_QUIET"
 	then
-		export GIT_MERGE_VERBOSITY=1
+		GIT_MERGE_VERBOSITY=1 && export GIT_MERGE_VERBOSITY
 	fi
 	eval 'git-merge-$strategy' $strategy_opts '"$cmt^" -- "$hd" "$cmt"'
 	rv=$?
diff --git a/git-stash.sh b/git-stash.sh
index 5fb1245..7561b37 100755
--- a/git-stash.sh
+++ b/git-stash.sh
@@ -373,7 +373,7 @@ apply_stash () {
 
 	if test -n "$GIT_QUIET"
 	then
-		export GIT_MERGE_VERBOSITY=0
+		GIT_MERGE_VERBOSITY=0 && export GIT_MERGE_VERBOSITY
 	fi
 	if git merge-recursive $b_tree -- $c_tree $w_tree
 	then
diff --git a/t/t1509-root-worktree.sh b/t/t1509-root-worktree.sh
index 7f60fd0..335420f 100755
--- a/t/t1509-root-worktree.sh
+++ b/t/t1509-root-worktree.sh
@@ -134,8 +134,8 @@ cat >ls.expected <<EOF
 100644 $ONE_SHA1 0	me
 EOF
 
-export GIT_DIR="$TRASH_DIRECTORY/.git"
-export GIT_WORK_TREE=/
+GIT_DIR="$TRASH_DIRECTORY/.git" && export GIT_DIR
+GIT_WORK_TREE=/ && export GIT_WORK_TREE
 
 test_vars 'abs gitdir, root' "$GIT_DIR" "/" ""
 test_foobar_root
@@ -154,24 +154,24 @@ say "GIT_DIR relative, GIT_WORK_TREE set"
 
 test_expect_success 'go to /' 'cd /'
 
-export GIT_DIR="$(echo $TRASH_DIRECTORY|sed 's,^/,,')/.git"
-export GIT_WORK_TREE=/
+GIT_DIR="$(echo $TRASH_DIRECTORY|sed 's,^/,,')/.git" && export GIT_DIR
+GIT_WORK_TREE=/ && export GIT_WORK_TREE
 
 test_vars 'rel gitdir, root' "$GIT_DIR" "/" ""
 test_foobar_root
 
 test_expect_success 'go to /foo' 'cd /foo'
 
-export GIT_DIR="../$TRASH_DIRECTORY/.git"
-export GIT_WORK_TREE=/
+GIT_DIR="../$TRASH_DIRECTORY/.git" && export GIT_DIR
+GIT_WORK_TREE=/ && export GIT_WORK_TREE
 
 test_vars 'rel gitdir, foo' "$TRASH_DIRECTORY/.git" "/" "foo/"
 test_foobar_foo
 
 test_expect_success 'go to /foo/bar' 'cd /foo/bar'
 
-export GIT_DIR="../../$TRASH_DIRECTORY/.git"
-export GIT_WORK_TREE=/
+GIT_DIR="../../$TRASH_DIRECTORY/.git" && export GIT_DIR
+GIT_WORK_TREE=/ && export GIT_WORK_TREE
 
 test_vars 'rel gitdir, foo/bar' "$TRASH_DIRECTORY/.git" "/" "foo/bar/"
 test_foobar_foobar
@@ -180,24 +180,24 @@ say "GIT_DIR relative, GIT_WORK_TREE relative"
 
 test_expect_success 'go to /' 'cd /'
 
-export GIT_DIR="$(echo $TRASH_DIRECTORY|sed 's,^/,,')/.git"
-export GIT_WORK_TREE=.
+GIT_DIR="$(echo $TRASH_DIRECTORY|sed 's,^/,,')/.git" && export GIT_DIR
+GIT_WORK_TREE=. && export GIT_WORK_TREE
 
 test_vars 'rel gitdir, root' "$GIT_DIR" "/" ""
 test_foobar_root
 
 test_expect_success 'go to /' 'cd /foo'
 
-export GIT_DIR="../$TRASH_DIRECTORY/.git"
-export GIT_WORK_TREE=..
+GIT_DIR="../$TRASH_DIRECTORY/.git" && export GIT_DIR
+GIT_WORK_TREE=.. && export GIT_WORK_TREE
 
 test_vars 'rel gitdir, foo' "$TRASH_DIRECTORY/.git" "/" "foo/"
 test_foobar_foo
 
 test_expect_success 'go to /foo/bar' 'cd /foo/bar'
 
-export GIT_DIR="../../$TRASH_DIRECTORY/.git"
-export GIT_WORK_TREE=../..
+GIT_DIR="../../$TRASH_DIRECTORY/.git" && export GIT_DIR
+GIT_WORK_TREE=../.. && export GIT_WORK_TREE
 
 test_vars 'rel gitdir, foo/bar' "$TRASH_DIRECTORY/.git" "/" "foo/bar/"
 test_foobar_foobar
diff --git a/t/t5560-http-backend-noserver.sh b/t/t5560-http-backend-noserver.sh
index 44885b8..94f9d2e 100755
--- a/t/t5560-http-backend-noserver.sh
+++ b/t/t5560-http-backend-noserver.sh
@@ -14,7 +14,7 @@ run_backend() {
 }
 
 GET() {
-	export REQUEST_METHOD="GET" &&
+	REQUEST_METHOD="GET" && export REQUEST_METHOD &&
 	run_backend "/repo.git/$1" &&
 	unset REQUEST_METHOD &&
 	if ! grep "Status" act.out >act
@@ -26,8 +26,8 @@ GET() {
 }
 
 POST() {
-	export REQUEST_METHOD="POST" &&
-	export CONTENT_TYPE="application/x-$1-request" &&
+	REQUEST_METHOD="POST" && export REQUEST_METHOD &&
+	CONTENT_TYPE="application/x-$1-request" && export CONTENT_TYPE &&
 	run_backend "/repo.git/$1" "$2" &&
 	unset REQUEST_METHOD &&
 	unset CONTENT_TYPE &&
@@ -46,7 +46,7 @@ log_div() {
 . "$TEST_DIRECTORY"/t556x_common
 
 expect_aliased() {
-	export REQUEST_METHOD="GET" &&
+	REQUEST_METHOD="GET" && export REQUEST_METHOD &&
 	if test $1 = 0; then
 		run_backend "$2"
 	else
diff --git a/t/t556x_common b/t/t556x_common
index be024e5..51287d8 100755
--- a/t/t556x_common
+++ b/t/t556x_common
@@ -50,7 +50,7 @@ get_static_files() {
 }
 
 SMART=smart
-export GIT_HTTP_EXPORT_ALL=1
+GIT_HTTP_EXPORT_ALL=1 && export GIT_HTTP_EXPORT_ALL
 test_expect_success 'direct refs/heads/master not found' '
 	log_div "refs/heads/master"
 	GET refs/heads/master "404 Not Found"
@@ -73,7 +73,7 @@ test_expect_success 'export if git-daemon-export-ok' '
         get_static_files "200 OK"
 '
 SMART=smart
-export GIT_HTTP_EXPORT_ALL=1
+GIT_HTTP_EXPORT_ALL=1 && export GIT_HTTP_EXPORT_ALL
 test_expect_success 'static file if http.getanyfile true is ok' '
 	log_div "getanyfile true"
 	config http.getanyfile true &&

← back to recent threads