Robert Shearman <rob@xxxxxxxxxxxxxxx> writes: > 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> Moving the assignment of GIT_OBJECT_DIRECTORY is fine, but changing it to an unconditional assignment is wrong. The user can have a GIT_OBJECT_DIRECTORY set independently from GIT_DIR (or ../some/where/.git that is detected). The rest looks sane; the new test should still detect the case the original test tried to catch. > 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" - : send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html