You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.6 KiB
78 lines
1.6 KiB
#!/bin/sh |
|
|
|
test_description='rev-list testing in-commit-order' |
|
|
|
TEST_PASSES_SANITIZE_LEAK=true |
|
. ./test-lib.sh |
|
|
|
test_expect_success 'setup a commit history with trees, blobs' ' |
|
for x in one two three four |
|
do |
|
echo $x >$x && |
|
git add $x && |
|
git commit -m "add file $x" || |
|
return 1 |
|
done && |
|
for x in four three |
|
do |
|
git rm $x && |
|
git commit -m "remove $x" || |
|
return 1 |
|
done |
|
' |
|
|
|
test_expect_success 'rev-list --in-commit-order' ' |
|
git rev-list --in-commit-order --objects HEAD >actual.raw && |
|
cut -d" " -f1 >actual <actual.raw && |
|
|
|
git cat-file --batch-check="%(objectname)" >expect.raw <<-\EOF && |
|
HEAD^{commit} |
|
HEAD^{tree} |
|
HEAD^{tree}:one |
|
HEAD^{tree}:two |
|
HEAD~1^{commit} |
|
HEAD~1^{tree} |
|
HEAD~1^{tree}:three |
|
HEAD~2^{commit} |
|
HEAD~2^{tree} |
|
HEAD~2^{tree}:four |
|
HEAD~3^{commit} |
|
# HEAD~3^{tree} skipped, same as HEAD~1^{tree} |
|
HEAD~4^{commit} |
|
# HEAD~4^{tree} skipped, same as HEAD^{tree} |
|
HEAD~5^{commit} |
|
HEAD~5^{tree} |
|
EOF |
|
grep -v "#" >expect <expect.raw && |
|
|
|
test_cmp expect actual |
|
' |
|
|
|
test_expect_success 'rev-list lists blobs and trees after commits' ' |
|
git rev-list --objects HEAD >actual.raw && |
|
cut -d" " -f1 >actual <actual.raw && |
|
|
|
git cat-file --batch-check="%(objectname)" >expect.raw <<-\EOF && |
|
HEAD^{commit} |
|
HEAD~1^{commit} |
|
HEAD~2^{commit} |
|
HEAD~3^{commit} |
|
HEAD~4^{commit} |
|
HEAD~5^{commit} |
|
HEAD^{tree} |
|
HEAD^{tree}:one |
|
HEAD^{tree}:two |
|
HEAD~1^{tree} |
|
HEAD~1^{tree}:three |
|
HEAD~2^{tree} |
|
HEAD~2^{tree}:four |
|
# HEAD~3^{tree} skipped, same as HEAD~1^{tree} |
|
# HEAD~4^{tree} skipped, same as HEAD^{tree} |
|
HEAD~5^{tree} |
|
EOF |
|
grep -v "#" >expect <expect.raw && |
|
|
|
test_cmp expect actual |
|
' |
|
|
|
test_done
|
|
|