diff options
author | Jeff King <peff@peff.net> | 2008-05-13 04:45:56 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-05-13 21:45:28 -0700 |
commit | 6d9878cc60ba97fc99aa92f40535644938cad907 (patch) | |
tree | 2fd3e0dced8c32eb9639abcbb771f8eee51b085c | |
parent | 30684dfaf8cf96e5afc01668acc01acc0ade59db (diff) | |
download | git-6d9878cc60ba97fc99aa92f40535644938cad907.tar.gz |
clone: bsd shell portability fix
When using /bin/sh from FreeBSD 6.1, the value of $? is lost
when calling a function inside the 'trap' action. This
resulted in clone erroneously indicating success when it
should have reported failure.
As a workaround, we save the value of $? before calling any
functions.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-clone.sh | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/git-clone.sh b/git-clone.sh index 9d88d1ce60..547228e13c 100755 --- a/git-clone.sh +++ b/git-clone.sh @@ -240,7 +240,6 @@ die "working tree '$GIT_WORK_TREE' already exists." D= W= cleanup() { - err=$? test -z "$D" && rm -rf "$dir" test -z "$W" && test -n "$GIT_WORK_TREE" && rm -rf "$GIT_WORK_TREE" cd .. @@ -248,7 +247,7 @@ cleanup() { test -n "$W" && rm -rf "$W" exit $err } -trap cleanup 0 +trap 'err=$?; cleanup' 0 mkdir -p "$dir" && D=$(cd "$dir" && pwd) || usage test -n "$GIT_WORK_TREE" && mkdir -p "$GIT_WORK_TREE" && W=$(cd "$GIT_WORK_TREE" && pwd) && GIT_WORK_TREE="$W" && export GIT_WORK_TREE |