Cleanup variables in http.[ch]
[gitweb.git] / git-checkout.sh
index c00cedd4837577647e369bd398fb3f6635674544..f6d58ac044e5afb09855d687d3c1bcc8e2273be3 100755 (executable)
@@ -133,9 +133,9 @@ Did you intend to checkout '$@' which can not be resolved as commit?"
        fi
 
        # Make sure the request is about existing paths.
-       git ls-files --error-unmatch -- "$@" >/dev/null || exit
-       git ls-files -- "$@" |
-       git checkout-index -f -u --stdin
+       git ls-files --full-name --error-unmatch -- "$@" >/dev/null || exit
+       git ls-files --full-name -- "$@" |
+               (cd_to_toplevel && git checkout-index -f -u --stdin)
 
        # Run a post-checkout hook -- the HEAD does not change so the
        # current HEAD is passed in for both args
@@ -175,7 +175,7 @@ detach_warn=
 describe_detached_head () {
        test -n "$quiet" || {
                printf >&2 "$1 "
-               GIT_PAGER= git log >&2 -1 --pretty=oneline --abbrev-commit "$2"
+               GIT_PAGER= git log >&2 -1 --pretty=oneline --abbrev-commit "$2" --
        }
 }
 
@@ -266,7 +266,7 @@ if [ "$?" -eq 0 ]; then
        if test -n "$branch"
        then
                old_branch_name=`expr "z$oldbranch" : 'zrefs/heads/\(.*\)'`
-               GIT_DIR="$GIT_DIR" git symbolic-ref -m "checkout: moving from $old_branch_name to $branch" HEAD "refs/heads/$branch"
+               GIT_DIR="$GIT_DIR" git symbolic-ref -m "checkout: moving from ${old_branch_name:-$old} to $branch" HEAD "refs/heads/$branch"
                if test -n "$quiet"
                then
                        true    # nothing
@@ -278,7 +278,8 @@ if [ "$?" -eq 0 ]; then
                fi
        elif test -n "$detached"
        then
-               git update-ref --no-deref -m "checkout: moving to $arg" HEAD "$detached" ||
+               old_branch_name=`expr "z$oldbranch" : 'zrefs/heads/\(.*\)'`
+               git update-ref --no-deref -m "checkout: moving from ${old_branch_name:-$old} to $arg" HEAD "$detached" ||
                        die "Cannot detach HEAD"
                if test -n "$detach_warn"
                then