t1408: add a test of stale packed refs covered by loose refs

It is OK for the packed-refs file to contain old reference definitions
that might even refer to objects that have since been
garbage-collected, as long as there is a corresponding loose reference
definition that overrides it. Add a test that such references don't
cause problems.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano 2017-06-23 09:01:19 +02:00
parent 03df567fbf
commit 74195c69ad

42
t/t1408-packed-refs.sh Executable file
View file

@ -0,0 +1,42 @@
#!/bin/sh
test_description='packed-refs entries are covered by loose refs'
. ./test-lib.sh
test_expect_success setup '
test_tick &&
git commit --allow-empty -m one &&
one=$(git rev-parse HEAD) &&
git for-each-ref >actual &&
echo "$one commit refs/heads/master" >expect &&
test_cmp expect actual &&
git pack-refs --all &&
git for-each-ref >actual &&
echo "$one commit refs/heads/master" >expect &&
test_cmp expect actual &&
git checkout --orphan another &&
test_tick &&
git commit --allow-empty -m two &&
two=$(git rev-parse HEAD) &&
git checkout -B master &&
git branch -D another &&
git for-each-ref >actual &&
echo "$two commit refs/heads/master" >expect &&
test_cmp expect actual &&
git reflog expire --expire=now --all &&
git prune &&
git tag -m v1.0 v1.0 master
'
test_expect_success 'no error from stale entry in packed-refs' '
git describe master >actual 2>&1 &&
echo "v1.0" >expect &&
test_cmp expect actual
'
test_done