Skip to content

Commit

Permalink
Do not rely on the exit status of "unset" for unset variables
Browse files Browse the repository at this point in the history
POSIX says that exit status "0" means that "unset" successfully unset
the variable.  However, it is kind of ambiguous if an environment
variable which was not set could be successfully unset.

At least the default shell on HP-UX insists on reporting an error in
such a case, so just ignore the exit status of "unset".

[Dscho: extended the patch to git-submodule.sh, as Junio realized that
 this is the only other place where we check the exit status of "unset".]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
H.Merijn Brand authored and Junio C Hamano committed Dec 4, 2007
1 parent e5d3de5 commit 5188408
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 13 deletions.
10 changes: 5 additions & 5 deletions git-submodule.sh
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ module_add()
die "'$path' already exists in the index"

module_clone "$path" "$realrepo" || exit
(unset GIT_DIR && cd "$path" && git checkout -q ${branch:+-b "$branch" "origin/$branch"}) ||
(unset GIT_DIR; cd "$path" && git checkout -q ${branch:+-b "$branch" "origin/$branch"}) ||
die "Unable to checkout submodule '$path'"
git add "$path" ||
die "Failed to add submodule '$path'"
Expand Down Expand Up @@ -228,14 +228,14 @@ modules_update()
module_clone "$path" "$url" || exit
subsha1=
else
subsha1=$(unset GIT_DIR && cd "$path" &&
subsha1=$(unset GIT_DIR; cd "$path" &&
git rev-parse --verify HEAD) ||
die "Unable to find current revision in submodule path '$path'"
fi

if test "$subsha1" != "$sha1"
then
(unset GIT_DIR && cd "$path" && git-fetch &&
(unset GIT_DIR; cd "$path" && git-fetch &&
git-checkout -q "$sha1") ||
die "Unable to checkout '$sha1' in submodule path '$path'"

Expand All @@ -246,7 +246,7 @@ modules_update()

set_name_rev () {
revname=$( (
unset GIT_DIR &&
unset GIT_DIR
cd "$1" && {
git describe "$2" 2>/dev/null ||
git describe --tags "$2" 2>/dev/null ||
Expand Down Expand Up @@ -285,7 +285,7 @@ modules_list()
else
if test -z "$cached"
then
sha1=$(unset GIT_DIR && cd "$path" && git rev-parse --verify HEAD)
sha1=$(unset GIT_DIR; cd "$path" && git rev-parse --verify HEAD)
set_name_rev "$path" "$sha1"
fi
say "+$sha1 $path$revname"
Expand Down
16 changes: 8 additions & 8 deletions t/t0001-init.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ check_config () {

test_expect_success 'plain' '
(
unset GIT_DIR GIT_WORK_TREE &&
unset GIT_DIR GIT_WORK_TREE
mkdir plain &&
cd plain &&
git init
Expand All @@ -35,7 +35,7 @@ test_expect_success 'plain' '

test_expect_success 'plain with GIT_WORK_TREE' '
if (
unset GIT_DIR &&
unset GIT_DIR
mkdir plain-wt &&
cd plain-wt &&
GIT_WORK_TREE=$(pwd) git init
Expand All @@ -48,7 +48,7 @@ test_expect_success 'plain with GIT_WORK_TREE' '

test_expect_success 'plain bare' '
(
unset GIT_DIR GIT_WORK_TREE GIT_CONFIG &&
unset GIT_DIR GIT_WORK_TREE GIT_CONFIG
mkdir plain-bare-1 &&
cd plain-bare-1 &&
git --bare init
Expand All @@ -58,7 +58,7 @@ test_expect_success 'plain bare' '

test_expect_success 'plain bare with GIT_WORK_TREE' '
if (
unset GIT_DIR GIT_CONFIG &&
unset GIT_DIR GIT_CONFIG
mkdir plain-bare-2 &&
cd plain-bare-2 &&
GIT_WORK_TREE=$(pwd) git --bare init
Expand All @@ -72,7 +72,7 @@ test_expect_success 'plain bare with GIT_WORK_TREE' '
test_expect_success 'GIT_DIR bare' '
(
unset GIT_CONFIG &&
unset GIT_CONFIG
mkdir git-dir-bare.git &&
GIT_DIR=git-dir-bare.git git init
) &&
Expand All @@ -82,7 +82,7 @@ test_expect_success 'GIT_DIR bare' '
test_expect_success 'GIT_DIR non-bare' '
(
unset GIT_CONFIG &&
unset GIT_CONFIG
mkdir non-bare &&
cd non-bare &&
GIT_DIR=.git git init
Expand All @@ -93,7 +93,7 @@ test_expect_success 'GIT_DIR non-bare' '
test_expect_success 'GIT_DIR & GIT_WORK_TREE (1)' '
(
unset GIT_CONFIG &&
unset GIT_CONFIG
mkdir git-dir-wt-1.git &&
GIT_WORK_TREE=$(pwd) GIT_DIR=git-dir-wt-1.git git init
) &&
Expand All @@ -103,7 +103,7 @@ test_expect_success 'GIT_DIR & GIT_WORK_TREE (1)' '
test_expect_success 'GIT_DIR & GIT_WORK_TREE (2)' '
if (
unset GIT_CONFIG &&
unset GIT_CONFIG
mkdir git-dir-wt-2.git &&
GIT_WORK_TREE=$(pwd) GIT_DIR=git-dir-wt-2.git git --bare init
)
Expand Down

0 comments on commit 5188408

Please sign in to comment.