diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-11-10 13:17:30 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-11-10 13:17:30 -0800 |
commit | 0538b84027a8aba7e8b805e3ec8fceb3990023e5 (patch) | |
tree | e9e2323b28d0eb1c7a3129c07e07d6e2a3c9f08c /t | |
parent | 7b2c338caef2c44e3d1d58ebf5fda1722f5c5daa (diff) | |
parent | 37a95862c625e1d2ed2609e01b03950253ad4ff9 (diff) | |
download | git-0538b84027a8aba7e8b805e3ec8fceb3990023e5.tar.gz git-0538b84027a8aba7e8b805e3ec8fceb3990023e5.tar.xz |
Merge branch 'jk/alt-odb-cleanup'
Fix a corner-case regression in a topic that graduated during the
v2.11 cycle.
* jk/alt-odb-cleanup:
alternates: re-allow relative paths from environment
Diffstat (limited to 't')
-rwxr-xr-x | t/t5615-alternate-env.sh | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/t/t5615-alternate-env.sh b/t/t5615-alternate-env.sh new file mode 100755 index 000000000..22d9d8178 --- /dev/null +++ b/t/t5615-alternate-env.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +test_description='handling of alternates in environment variables' +. ./test-lib.sh + +check_obj () { + alt=$1; shift + while read obj expect + do + echo "$obj" >&3 && + echo "$obj $expect" >&4 + done 3>input 4>expect && + GIT_ALTERNATE_OBJECT_DIRECTORIES=$alt \ + git "$@" cat-file --batch-check='%(objectname) %(objecttype)' \ + <input >actual && + test_cmp expect actual +} + +test_expect_success 'create alternate repositories' ' + git init --bare one.git && + one=$(echo one | git -C one.git hash-object -w --stdin) && + git init --bare two.git && + two=$(echo two | git -C two.git hash-object -w --stdin) +' + +test_expect_success 'objects inaccessible without alternates' ' + check_obj "" <<-EOF + $one missing + $two missing + EOF +' + +test_expect_success 'access alternate via absolute path' ' + check_obj "$(pwd)/one.git/objects" <<-EOF + $one blob + $two missing + EOF +' + +test_expect_success 'access multiple alternates' ' + check_obj "$(pwd)/one.git/objects:$(pwd)/two.git/objects" <<-EOF + $one blob + $two blob + EOF +' + +# bare paths are relative from $GIT_DIR +test_expect_success 'access alternate via relative path (bare)' ' + git init --bare bare.git && + check_obj "../one.git/objects" -C bare.git <<-EOF + $one blob + EOF +' + +# non-bare paths are relative to top of worktree +test_expect_success 'access alternate via relative path (worktree)' ' + git init worktree && + check_obj "../one.git/objects" -C worktree <<-EOF + $one blob + EOF +' + +# path is computed after moving to top-level of worktree +test_expect_success 'access alternate via relative path (subdir)' ' + mkdir subdir && + check_obj "one.git/objects" -C subdir <<-EOF + $one blob + EOF +' + +test_done |