From 8ced1aa08f9e1798b2b3fec41a0598ef79b477fe Mon Sep 17 00:00:00 2001 From: Chris Webb Date: Tue, 26 Jun 2012 16:06:42 +0100 Subject: git-checkout: disallow --detach on unborn branch abe199808c (git checkout -b: allow switching out of an unborn branch) introduced a bug demonstrated by git checkout --orphan foo git checkout --detach git symbolic-ref HEAD which gives 'refs/heads/(null)'. This happens because we strbuf_addf(&branch_ref, "refs/heads/%s", opts->new_branch) when opts->new_branch can be NULL for --detach. Catch and forbid this case, adding a test to t2017 to catch it in future. Signed-off-by: Chris Webb Signed-off-by: Junio C Hamano --- t/t2017-checkout-orphan.sh | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 't') diff --git a/t/t2017-checkout-orphan.sh b/t/t2017-checkout-orphan.sh index 0e3b8582f2..655f278c5f 100755 --- a/t/t2017-checkout-orphan.sh +++ b/t/t2017-checkout-orphan.sh @@ -116,4 +116,10 @@ test_expect_success '--orphan refuses to switch if a merge is needed' ' git reset --hard ' +test_expect_success 'cannot --detach on an unborn branch' ' + git checkout master && + git checkout --orphan new && + test_must_fail git checkout --detach +' + test_done -- cgit v1.2.1