3 test_description
='handling of alternates in environment variables'
11 echo "$obj $expect" >&4
12 done 3>input
4>expect
&&
13 GIT_ALTERNATE_OBJECT_DIRECTORIES
=$alt \
14 git
"$@" cat-file
--batch-check='%(objectname) %(objecttype)' \
16 test_cmp expect actual
19 test_expect_success
'create alternate repositories' '
20 git init --bare one.git &&
21 one=$(echo one | git -C one.git hash-object -w --stdin) &&
22 git init --bare two.git &&
23 two=$(echo two | git -C two.git hash-object -w --stdin)
26 test_expect_success
'objects inaccessible without alternates' '
33 test_expect_success
'access alternate via absolute path' '
34 check_obj "$PWD/one.git/objects" <<-EOF
40 test_expect_success
'access multiple alternates' '
41 check_obj "$PWD/one.git/objects:$PWD/two.git/objects" <<-EOF
47 # bare paths are relative from $GIT_DIR
48 test_expect_success
'access alternate via relative path (bare)' '
49 git init --bare bare.git &&
50 check_obj "../one.git/objects" -C bare.git <<-EOF
55 # non-bare paths are relative to top of worktree
56 test_expect_success
'access alternate via relative path (worktree)' '
58 check_obj "../one.git/objects" -C worktree <<-EOF
63 # path is computed after moving to top-level of worktree
64 test_expect_success
'access alternate via relative path (subdir)' '
66 check_obj "one.git/objects" -C subdir <<-EOF