diff options
author | Derrick Stolee <dstolee@microsoft.com> | 2018-08-20 16:52:00 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-08-20 15:31:39 -0700 |
commit | 29e2016b8f952c900b2f4ce148be5279c53fd9e3 (patch) | |
tree | 7c9b371530a900db71fb28070a16a3264534320e /t | |
parent | midx: stop reporting garbage (diff) | |
download | tgif-29e2016b8f952c900b2f4ce148be5279c53fd9e3.tar.xz |
midx: fix bug that skips midx with alternates
The logic for constructing the linked list of multi-pack-indexes
in the object store is incorrect. If the local object store has
a multi-pack-index, but an alternate does not, then the list is
dropped.
Add tests that would have revealed this bug.
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/t5319-multi-pack-index.sh | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/t/t5319-multi-pack-index.sh b/t/t5319-multi-pack-index.sh index ae1d5d4592..4b6e2825a6 100755 --- a/t/t5319-multi-pack-index.sh +++ b/t/t5319-multi-pack-index.sh @@ -149,6 +149,23 @@ test_expect_success 'repack removes multi-pack-index' ' compare_results_with_midx "after repack" +test_expect_success 'multi-pack-index and alternates' ' + git init --bare alt.git && + echo $(pwd)/alt.git/objects >.git/objects/info/alternates && + echo content1 >file1 && + altblob=$(GIT_DIR=alt.git git hash-object -w file1) && + git cat-file blob $altblob && + git rev-list --all +' + +compare_results_with_midx "with alternate (local midx)" + +test_expect_success 'multi-pack-index in an alternate' ' + mv .git/objects/pack/* alt.git/objects/pack +' + +compare_results_with_midx "with alternate (remote midx)" + # usage: corrupt_data <file> <pos> [<data>] corrupt_data () { |