[PATCH] git-sh-setup: Fail if the git directory was not found.
- From
- Robert Shearman <rob@codeweavers.com>
- Date
- Aug 11, 2006, 09:23 UTC
- Message-ID
- <44DC4C92.5060009@codeweavers.com>
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@codeweavers.com> --- 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"