1#!/bin/sh 2# 3# This is included in commands that either have to be run from the toplevel 4# of the repository, or with GIT_DIR environment variable properly. 5# If the GIT_DIR does not look like the right correct git-repository, 6# it dies. 7 8# Having this variable in your environment would break scripts because 9# you would cause "cd" to be be taken to unexpected places. If you 10# like CDPATH, define it for your interactive shell sessions without 11# exporting it. 12unset CDPATH 13 14die() { 15echo>&2"$@" 16exit1 17} 18 19usage() { 20 die "Usage:$0$USAGE" 21} 22 23if[-z"$LONG_USAGE"] 24then 25 LONG_USAGE="Usage:$0$USAGE" 26else 27 LONG_USAGE="Usage:$0$USAGE 28 29$LONG_USAGE" 30fi 31 32case"$1"in 33--h|--he|--hel|--help) 34echo"$LONG_USAGE" 35exit 36esac 37 38if[-z"$SUBDIRECTORY_OK"] 39then 40:${GIT_DIR=.git} 41:${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"} 42 43# Make sure we are in a valid repository of a vintage we understand. 44 GIT_DIR="$GIT_DIR" git repo-config --get core.nosuch >/dev/null 45iftest $? =128 46then 47exit 48fi 49else 50 GIT_DIR=$(git-rev-parse --git-dir)||exit 51fi