diff options
Diffstat (limited to 'git-sh-setup.sh')
-rwxr-xr-x | git-sh-setup.sh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/git-sh-setup.sh b/git-sh-setup.sh new file mode 100755 index 000000000..06d8299ce --- /dev/null +++ b/git-sh-setup.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# +# Set up GIT_DIR and GIT_OBJECT_DIRECTORY +# and return true if everything looks ok +# +: ${GIT_DIR=.git} +: ${GIT_OBJECT_DIRECTORY="$GIT_DIR/objects"} + +die() { + echo "$@" >&2 + exit 1 +} + +check_clean_tree() { + dirty1_=`git-update-index -q --refresh` && { + dirty2_=`git-diff-index --name-only --cached HEAD` + case "$dirty2_" in '') : ;; *) (exit 1) ;; esac + } || { + echo >&2 "$dirty1_" + echo "$dirty2_" | sed >&2 -e 's/^/modified: /' + (exit 1) + } +} + +[ -h "$GIT_DIR/HEAD" ] && +[ -d "$GIT_DIR/refs" ] && +[ -d "$GIT_OBJECT_DIRECTORY/00" ] |