From: David Kastrup Date: Sat, 11 Aug 2007 13:36:28 +0000 (+0200) Subject: git-sh-setup.sh: make GIT_DIR absolute X-Git-Tag: v1.5.3-rc5~13 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=b2bc9a30981ace8c18d1a73b3e10153efc5c20f7;p=git.git git-sh-setup.sh: make GIT_DIR absolute Quite a few of the scripts are rather careless about using GIT_DIR while changing directories. Some try their hands (with different likelihood of success) in making GIT_DIR absolute. This patch lets git-sh-setup.sh cater for absolute directories (in a way that should work reliably also with non-Unix path names) and removes the respective kludges in git-filter-branch.sh and git-instaweb.sh. Signed-off-by: David Kastrup Signed-off-by: Junio C Hamano --- diff --git a/git-filter-branch.sh b/git-filter-branch.sh index b5fa44920..c42e4512c 100755 --- a/git-filter-branch.sh +++ b/git-filter-branch.sh @@ -170,13 +170,6 @@ do esac done < "$tempdir"/backup-refs -case "$GIT_DIR" in -/*) - ;; -*) - GIT_DIR="$(pwd)/../../$GIT_DIR" - ;; -esac export GIT_DIR GIT_WORK_TREE=. # These refs should be updated if their heads were rewritten diff --git a/git-instaweb.sh b/git-instaweb.sh index cbc7418e3..b79c6b6a4 100755 --- a/git-instaweb.sh +++ b/git-instaweb.sh @@ -8,13 +8,7 @@ USAGE='[--start] [--stop] [--restart] . git-sh-setup -case "$GIT_DIR" in -/*) - fqgitdir="$GIT_DIR" ;; -*) - fqgitdir="$PWD/$GIT_DIR" ;; -esac - +fqgitdir="$GIT_DIR" local="`git config --bool --get instaweb.local`" httpd="`git config --get instaweb.httpd`" browser="`git config --get instaweb.browser`" diff --git a/git-sh-setup.sh b/git-sh-setup.sh index 8cbd153b6..185c5c6c9 100755 --- a/git-sh-setup.sh +++ b/git-sh-setup.sh @@ -116,6 +116,16 @@ then exit $exit } else - GIT_DIR=$(git rev-parse --git-dir) || exit + GIT_DIR=$(git rev-parse --git-dir) || { + exit=$? + echo >&2 "Failed to find a valid git directory." + exit $exit + } fi + +test -n "$GIT_DIR" && GIT_DIR=$(cd "$GIT_DIR" && pwd) || { + echo >&2 "Unable to determine absolute path of git directory" + exit 1 +} + : ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}