Code

git-svn: Fix a typo and add a comma in an error message in git-svn
[git.git] / git-sh-setup.sh
index 8cbd153b62265b8fbbd2dd73fc4089fa26dbc669..86d7d4c4e742c80e936d5f1c9f2037327eba7287 100755 (executable)
@@ -6,7 +6,7 @@
 # it dies.
 
 # Having this variable in your environment would break scripts because
-# you would cause "cd" to be be taken to unexpected places.  If you
+# you would cause "cd" to be taken to unexpected places.  If you
 # like CDPATH, define it for your interactive shell sessions without
 # exporting it.
 unset CDPATH
@@ -110,12 +110,22 @@ esac
 if [ -z "$SUBDIRECTORY_OK" ]
 then
        : ${GIT_DIR=.git}
-       GIT_DIR=$(GIT_DIR="$GIT_DIR" git rev-parse --git-dir) || {
+       test -z "$(git rev-parse --show-cdup)" || {
                exit=$?
                echo >&2 "You need to run this command from the toplevel of the working tree."
                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"}