mirror of
https://github.com/git/git.git
synced 2026-06-30 19:58:12 +00:00
commit-graph: test verify across alternates
The 'git commit-graph verify' subcommand loads a commit-graph from a given object directory instead of using the standard method prepare_commit_graph(). During development of load_commit_graph_chain(), a version did not include prepare_alt_odb() as it was previously run by prepare_commit_graph() in most cases. Add a test that prevents that mistake from happening again. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
16110c9348
commit
5b15eb397d
@@ -237,6 +237,7 @@ corrupt_file() {
|
||||
file=$1
|
||||
pos=$2
|
||||
data="${3:-\0}"
|
||||
chmod a+w "$file" &&
|
||||
printf "$data" | dd of="$file" bs=1 seek="$pos" conv=notrunc
|
||||
}
|
||||
|
||||
@@ -295,6 +296,24 @@ test_expect_success 'verify after commit-graph-chain corruption' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'verify across alternates' '
|
||||
git clone --no-hardlinks . verify-alt &&
|
||||
(
|
||||
cd verify-alt &&
|
||||
rm -rf $graphdir &&
|
||||
altdir="$(pwd)/../.git/objects" &&
|
||||
echo "$altdir" >.git/objects/info/alternates &&
|
||||
git commit-graph verify --object-dir="$altdir/" &&
|
||||
test_commit extra &&
|
||||
git commit-graph write --reachable --split &&
|
||||
tip_file=$graphdir/graph-$(tail -n 1 $graphdir/commit-graph-chain).graph &&
|
||||
corrupt_file "$tip_file" 100 "\01" &&
|
||||
test_must_fail git commit-graph verify --shallow 2>test_err &&
|
||||
grep -v "^+" test_err >err &&
|
||||
test_i18ngrep "commit-graph has incorrect fanout value" err
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'add octopus merge' '
|
||||
git reset --hard commits/10 &&
|
||||
git merge commits/3 commits/4 &&
|
||||
|
||||
Reference in New Issue
Block a user