Optimize common case of git-rev-list
[git] / git-sh-setup.sh
1 #!/bin/sh
2 #
3 # Set up GIT_DIR and GIT_OBJECT_DIRECTORY
4 # and return true if everything looks ok
5 #
6 : ${GIT_DIR=.git}
7 : ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"}
8
9 # Having this variable in your environment would break scripts because
10 # you would cause "cd" to be be taken to unexpected places.  If you
11 # like CDPATH, define it for your interactive shell sessions without
12 # exporting it.
13 unset CDPATH
14
15 die() {
16         echo >&2 "$@"
17         exit 1
18 }
19
20 case "$(GIT_DIR="$GIT_DIR" git-symbolic-ref HEAD 2>/dev/null)" in
21 refs/*) : ;;
22 *)      false ;;
23 esac &&
24 [ -d "$GIT_DIR/refs" ] &&
25 [ -d "$GIT_OBJECT_DIRECTORY/00" ]