X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=git-checkout.sh;h=2c053a33c3c78f27150cdd397ad28641787abb3a;hb=4bfe1199eabb41eb1f1d67f4ee24df028eb21300;hp=37afcdda309ca8df52bb5033e5e7f0b771dfa067;hpb=3b944aac3b88773d1fae4352706915aad21f3757;p=git.git diff --git a/git-checkout.sh b/git-checkout.sh index 37afcdda..2c053a33 100755 --- a/git-checkout.sh +++ b/git-checkout.sh @@ -17,6 +17,8 @@ while [ "$#" != "0" ]; do die "git checkout: -b needs a branch name" [ -e "$GIT_DIR/refs/heads/$newbranch" ] && die "git checkout: branch $newbranch already exists" + git-check-ref-format "heads/$newbranch" || + die "we do not like '$newbranch' as a branch name." ;; "-f") force=1 @@ -71,7 +73,8 @@ if [ "$?" -eq 0 ]; then echo $new > "$GIT_DIR/refs/heads/$newbranch" branch="$newbranch" fi - [ "$branch" ] && ln -sf "refs/heads/$branch" "$GIT_DIR/HEAD" + [ "$branch" ] && + GIT_DIR="$GIT_DIR" git-symbolic-ref HEAD "refs/heads/$branch" rm -f "$GIT_DIR/MERGE_HEAD" else exit 1