#!/bin/sh test_description='packed-refs entries are covered by loose refs' GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME . ./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/main" >expect && test_cmp expect actual && git pack-refs --all && git for-each-ref >actual && echo "$one commit refs/heads/main" >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 main && git branch -D another && git for-each-ref >actual && echo "$two commit refs/heads/main" >expect && test_cmp expect actual && git reflog expire --expire=now --all && git prune && git tag -m v1.0 v1.0 main ' test_expect_success 'no error from stale entry in packed-refs' ' git describe main >actual 2>&1 && echo "v1.0" >expect && test_cmp expect actual ' test_expect_success 'list packed refs with unicode characters' ' test_when_finished "rm -rf repo" && git init repo && ( cd repo && test_commit --no-tag A && git update-ref refs/heads/ HEAD && git update-ref refs/heads/z HEAD && git pack-refs --all && printf "%s commit\trefs/heads/z\n" $(git rev-parse HEAD) >expect && git for-each-ref refs/heads/z >actual && test_cmp expect actual ) ' test_done