mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
![Derrick Stolee](/assets/img/avatar_default.png)
The commit-graph feature has seen a lot of activity in the past year or so since it was introduced. The feature is a critical performance enhancement for medium- to large-sized repos, and does not significantly hurt small repos. Change the defaults for core.commitGraph and gc.writeCommitGraph to true so users benefit from this feature by default. There are several places in the test suite where the environment variable GIT_TEST_COMMIT_GRAPH is disabled to avoid reading a commit-graph, if it exists. The config option overrides the environment, so swap these. Some GIT_TEST_COMMIT_GRAPH assignments remain, and those are to avoid writing a commit-graph when a new commit is created. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
40 lines
917 B
Bash
Executable file
40 lines
917 B
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='pack should notice missing commit objects'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success setup '
|
|
for i in 1 2 3 4 5
|
|
do
|
|
echo "$i" >"file$i" &&
|
|
git add "file$i" &&
|
|
test_tick &&
|
|
git commit -m "$i" &&
|
|
git tag "tag$i"
|
|
done &&
|
|
obj=$(git rev-parse --verify tag3) &&
|
|
fanout=$(expr "$obj" : "\(..\)") &&
|
|
remainder=$(expr "$obj" : "..\(.*\)") &&
|
|
rm -f ".git/objects/$fanout/$remainder"
|
|
'
|
|
|
|
test_expect_success 'check corruption' '
|
|
test_must_fail git fsck
|
|
'
|
|
|
|
test_expect_success 'rev-list notices corruption (1)' '
|
|
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git -c core.commitGraph=false rev-list HEAD
|
|
'
|
|
|
|
test_expect_success 'rev-list notices corruption (2)' '
|
|
test_must_fail env GIT_TEST_COMMIT_GRAPH=0 git -c core.commitGraph=false rev-list --objects HEAD
|
|
'
|
|
|
|
test_expect_success 'pack-objects notices corruption' '
|
|
echo HEAD |
|
|
test_must_fail git pack-objects --revs pack
|
|
'
|
|
|
|
test_done
|