summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kastrup <dak@gnu.org>2007-08-11 15:36:28 +0200
committerJunio C Hamano <gitster@pobox.com>2007-08-13 21:19:48 -0700
commitb2bc9a30981ace8c18d1a73b3e10153efc5c20f7 (patch)
tree4c8cceb653e27c2b5d089a5f279647ec8b25c5f3
parent0476786e645ae18096d6a63de5fd4b756071b522 (diff)
downloadgit-b2bc9a30981ace8c18d1a73b3e10153efc5c20f7.tar.gz
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 <dak@gnu.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-filter-branch.sh7
-rwxr-xr-xgit-instaweb.sh8
-rwxr-xr-xgit-sh-setup.sh12
3 files changed, 12 insertions, 15 deletions
diff --git a/git-filter-branch.sh b/git-filter-branch.sh
index b5fa44920d..c42e4512cf 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 cbc7418e35..b79c6b6a42 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 8cbd153b62..185c5c6c95 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"}