#!/bin/sh
. git-sh-setup-script || die "Not a git archive"

old=$(git-rev-parse HEAD)
new=
force=
branch=
newbranch=
while [ "$#" != "0" ]; do
    arg="$1"
    shift
    case "$arg" in
	"-b")
		newbranch="$1"
		shift
		[ -z "$newbranch" ] &&
			die "git checkout: -b needs a branch name"
		[ -e "$GIT_DIR/refs/heads/$newbranch" ] &&
			die "git checkout: branch $newbranch already exists"
		;;
	"-f")
		force=1
		;;
	*)
		rev=$(git-rev-parse --verify "$arg^0") || exit
		if [ -z "$rev" ]; then
			echo "unknown flag $arg"
			exit 1
		fi
		if [ "$new" ]; then
			echo "Multiple revisions?"
			exit 1
		fi
		new="$rev"
		if [ -f "$GIT_DIR/refs/heads/$arg" ]; then
			branch="$arg"
		fi
		;;
    esac
done
[ -z "$new" ] && new=$old

#
# If we don't have an old branch that we're switching to,
# and we don't have a new branch name for the target we
# are switching to, then we'd better just be checking out
# what we already had
#
[ -z "$branch$newbranch" ] &&
	[ "$new" != "$old" ] &&
	die "git checkout: you need to specify a new branch name"

if [ "$force" ]
then
    git-read-tree --reset $new &&
	git-checkout-cache -q -f -u -a
else
    git-read-tree -m -u $old $new
fi

# 
# Switch the HEAD pointer to the new branch if it we
# checked out a branch head, and remove any potential
# old MERGE_HEAD's (subsequent commits will clearly not
# be based on them, since we re-set the index)
#
if [ "$?" -eq 0 ]; then
	if [ "$newbranch" ]; then
		echo $new > "$GIT_DIR/refs/heads/$newbranch"
		branch="$newbranch"
	fi
	[ "$branch" ] && ln -sf "refs/heads/$branch" "$GIT_DIR/HEAD"
	rm -f "$GIT_DIR/MERGE_HEAD"
else
	exit 1
fi
