Merge branch 'sp/void'
* sp/void: Allow git-checkout when on a non-existant branch.
This commit is contained in:
commit
2b83ade977
@ -4,8 +4,8 @@ USAGE='[-f] [-b <new_branch>] [-m] [<branch>] [<paths>...]'
|
||||
SUBDIRECTORY_OK=Sometimes
|
||||
. git-sh-setup
|
||||
|
||||
old=$(git-rev-parse HEAD)
|
||||
old_name=HEAD
|
||||
old=$(git-rev-parse --verify $old_name 2>/dev/null)
|
||||
new=
|
||||
new_name=
|
||||
force=
|
||||
@ -139,6 +139,13 @@ fi
|
||||
die "git checkout: to checkout the requested commit you need to specify
|
||||
a name for a new branch which is created and switched to"
|
||||
|
||||
if [ "X$old" = X ]
|
||||
then
|
||||
echo "warning: You do not appear to currently be on a branch." >&2
|
||||
echo "warning: Forcing checkout of $new_name." >&2
|
||||
force=1
|
||||
fi
|
||||
|
||||
if [ "$force" ]
|
||||
then
|
||||
git-read-tree --reset -u $new
|
||||
|
@ -31,6 +31,15 @@ test_expect_success setup '
|
||||
git checkout master
|
||||
'
|
||||
|
||||
test_expect_success "checkout from non-existing branch" '
|
||||
|
||||
git checkout -b delete-me master &&
|
||||
rm .git/refs/heads/delete-me &&
|
||||
test refs/heads/delete-me = "$(git symbolic-ref HEAD)" &&
|
||||
git checkout master &&
|
||||
test refs/heads/master = "$(git symbolic-ref HEAD)"
|
||||
'
|
||||
|
||||
test_expect_success "checkout with dirty tree without -m" '
|
||||
|
||||
fill 0 1 2 3 4 5 >one &&
|
||||
|
Loading…
Reference in New Issue
Block a user