Always use git-rev-parse to find a valid git directory, as
git-repo-config no longer returns an error code if a git directory
wasn't found.
This fixes the message received when invoking certain commands
implemented as shell scripts from outside of a git tree, so e.g. instead
of receiving this:
/home/rob/bin/git-fetch: line 89: /FETCH_HEAD: Permission denied
We get this again:
fatal: Not a git repository: '.git'
Also, move the setting of GIT_OBJECT_DIRECTORY to outside of the
non-subdir-ok case as it isn't specific to that case.
Signed-off-by: Robert Shearman <rob@xxxxxxxxxxxxxxx>
---
git-sh-setup.sh | 12 +++---------
1 files changed, 3 insertions(+), 9 deletions(-)
Hopefully this patch addresses the concerns of Junio and others by
continuing to allow git-ls-remotes to work outside of a git repository.
diff --git a/git-sh-setup.sh b/git-sh-setup.sh
index d15747f..49f9e3b 100755
--- a/git-sh-setup.sh
+++ b/git-sh-setup.sh
@@ -37,15 +37,9 @@ esac
if [ -z "$SUBDIRECTORY_OK" ]
then
- : ${GIT_DIR=.git}
- : ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
-
- # Make sure we are in a valid repository of a vintage we understand.
- GIT_DIR="$GIT_DIR" git repo-config --get core.nosuch >/dev/null
- if test $? = 128
- then
- exit
- fi
+ GIT_DIR=$(GIT_DIR=.git git-rev-parse --git-dir) || exit
else
GIT_DIR=$(git-rev-parse --git-dir) || exit
fi
+
+GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"