Browse Source
When HEAD is detached, --all should list it, too, logically, as a detached HEAD is by definition a temporary, unnamed branch. It is especially necessary to list it when garbage collecting, as the detached HEAD would be trashed. Noticed by Thomas Rast. Note that this affects creating bundles with --all; I contend that it is a good change to add the HEAD, so that cloning from such a bundle will give you a current branch. However, I had to fix t5701 as it assumed that --all does not imply HEAD. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint


3 changed files with 41 additions and 2 deletions
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='--all includes detached HEADs' |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
|
||||
commit () { |
||||
test_tick && |
||||
echo $1 > foo && |
||||
git add foo && |
||||
git commit -m "$1" |
||||
} |
||||
|
||||
test_expect_success 'setup' ' |
||||
|
||||
commit one && |
||||
commit two && |
||||
git checkout HEAD^ && |
||||
commit detached |
||||
|
||||
' |
||||
|
||||
test_expect_success 'rev-list --all lists detached HEAD' ' |
||||
|
||||
test 3 = $(git rev-list --all | wc -l) |
||||
|
||||
' |
||||
|
||||
test_expect_success 'repack does not lose detached HEAD' ' |
||||
|
||||
git gc && |
||||
git prune --expire=now && |
||||
git show HEAD |
||||
|
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue