Some curl versions lack curl_easy_duphandle()
[gitweb.git] / git-checkout.sh
index e02c7afbaed52e83a01a68a65ff950b07c04f839..c3825904b60d36edca96506d7f451cf0349b262d 100755 (executable)
@@ -23,7 +23,7 @@ while [ "$#" != "0" ]; do
                ;;
        *)
                rev=$(git-rev-parse --verify "$arg^0" 2>/dev/null) ||
-                       die "hey dummy, branch '$arg' doesn't exist."
+                       die "I don't know any '$arg'."
                if [ -z "$rev" ]; then
                        echo "unknown flag $arg"
                        exit 1
@@ -71,7 +71,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