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>
This commit is contained in:
David Kastrup 2007-08-11 15:36:28 +02:00 коммит произвёл Junio C Hamano
Родитель 0476786e64
Коммит b2bc9a3098
3 изменённых файлов: 12 добавлений и 15 удалений

Просмотреть файл

@ -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

Просмотреть файл

@ -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`"

Просмотреть файл

@ -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"}