Merge branch 'sp/void'
* sp/void: Allow git-checkout when on a non-existant branch.maint
commit
2b83ade977
|
@ -4,8 +4,8 @@ USAGE='[-f] [-b <new_branch>] [-m] [<branch>] [<paths>...]'
|
||||||
SUBDIRECTORY_OK=Sometimes
|
SUBDIRECTORY_OK=Sometimes
|
||||||
. git-sh-setup
|
. git-sh-setup
|
||||||
|
|
||||||
old=$(git-rev-parse HEAD)
|
|
||||||
old_name=HEAD
|
old_name=HEAD
|
||||||
|
old=$(git-rev-parse --verify $old_name 2>/dev/null)
|
||||||
new=
|
new=
|
||||||
new_name=
|
new_name=
|
||||||
force=
|
force=
|
||||||
|
@ -139,6 +139,13 @@ fi
|
||||||
die "git checkout: to checkout the requested commit you need to specify
|
die "git checkout: to checkout the requested commit you need to specify
|
||||||
a name for a new branch which is created and switched to"
|
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" ]
|
if [ "$force" ]
|
||||||
then
|
then
|
||||||
git-read-tree --reset -u $new
|
git-read-tree --reset -u $new
|
||||||
|
|
|
@ -31,6 +31,15 @@ test_expect_success setup '
|
||||||
git checkout master
|
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" '
|
test_expect_success "checkout with dirty tree without -m" '
|
||||||
|
|
||||||
fill 0 1 2 3 4 5 >one &&
|
fill 0 1 2 3 4 5 >one &&
|
||||||
|
|
Loading…
Reference in New Issue