Code

git-checkout: Test for relative path use.
[git.git] / git-checkout.sh
index 89939206732849e968fabaf9128597c87f18f5c7..616d1eb8f8647d69bca0decc181aff2657bfae73 100755 (executable)
@@ -134,9 +134,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