#!/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
    i=$(($i+1))
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
