diff options
Diffstat (limited to 'git-checkout-script')
-rwxr-xr-x | git-checkout-script | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/git-checkout-script b/git-checkout-script deleted file mode 100755 index a37740713e..0000000000 --- a/git-checkout-script +++ /dev/null @@ -1,75 +0,0 @@ -#!/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" -fi |