#!/bin/sh
. git-sh-setup || 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" 2>/dev/null) ||
			die "I don't know any '$arg'."
		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-index -q -f -u -a
else
    git-update-index --refresh >/dev/null
    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
