Merge branch 'jk/clone-unborn-confusion'

"git clone" from a repository with some ref whose HEAD is unborn
did not set the HEAD in the resulting repository correctly, which
has been corrected.

* jk/clone-unborn-confusion:
  clone: move unborn head creation to update_head()
  clone: use remote branch if it matches default HEAD
  clone: propagate empty remote HEAD even with other branches
  clone: drop extra newline from warning message
This commit is contained in:
Junio C Hamano
2022-07-19 16:40:17 -07:00
3 changed files with 117 additions and 39 deletions

View File

@ -21,7 +21,9 @@ test_expect_success 'preparing origin repository' '
git bundle create b2.bundle main &&
mkdir dir &&
cp b1.bundle dir/b3 &&
cp b1.bundle b4
cp b1.bundle b4 &&
git branch not-main main &&
git bundle create b5.bundle not-main
'
test_expect_success 'local clone without .git suffix' '
@ -83,11 +85,19 @@ test_expect_success 'bundle clone from b4.bundle that does not exist' '
test_must_fail git clone b4.bundle bb
'
test_expect_success 'bundle clone with nonexistent HEAD' '
test_expect_success 'bundle clone with nonexistent HEAD (match default)' '
git clone b2.bundle b2 &&
(cd b2 &&
git fetch &&
test_must_fail git rev-parse --verify refs/heads/main)
git rev-parse --verify refs/heads/main)
'
test_expect_success 'bundle clone with nonexistent HEAD (no match default)' '
git clone b5.bundle b5 &&
(cd b5 &&
git fetch &&
test_must_fail git rev-parse --verify refs/heads/main &&
test_must_fail git rev-parse --verify refs/heads/not-main)
'
test_expect_success 'clone empty repository' '