]> git.ipfire.org Git - thirdparty/git.git/blame - t/t6100-rev-list-in-order.sh
The third batch
[thirdparty/git.git] / t / t6100-rev-list-in-order.sh
CommitLineData
ce5b6f9b
SB
1#!/bin/sh
2
3test_description='rev-list testing in-commit-order'
4
7a98d9ab 5TEST_PASSES_SANITIZE_LEAK=true
ce5b6f9b
SB
6. ./test-lib.sh
7
8test_expect_success 'setup a commit history with trees, blobs' '
9 for x in one two three four
10 do
11 echo $x >$x &&
12 git add $x &&
13 git commit -m "add file $x" ||
14 return 1
15 done &&
16 for x in four three
17 do
18 git rm $x &&
19 git commit -m "remove $x" ||
20 return 1
21 done
22'
23
24test_expect_success 'rev-list --in-commit-order' '
25 git rev-list --in-commit-order --objects HEAD >actual.raw &&
11b6961f 26 cut -d" " -f1 >actual <actual.raw &&
ce5b6f9b
SB
27
28 git cat-file --batch-check="%(objectname)" >expect.raw <<-\EOF &&
29 HEAD^{commit}
30 HEAD^{tree}
31 HEAD^{tree}:one
32 HEAD^{tree}:two
33 HEAD~1^{commit}
34 HEAD~1^{tree}
35 HEAD~1^{tree}:three
36 HEAD~2^{commit}
37 HEAD~2^{tree}
38 HEAD~2^{tree}:four
39 HEAD~3^{commit}
40 # HEAD~3^{tree} skipped, same as HEAD~1^{tree}
41 HEAD~4^{commit}
42 # HEAD~4^{tree} skipped, same as HEAD^{tree}
43 HEAD~5^{commit}
44 HEAD~5^{tree}
45 EOF
46 grep -v "#" >expect <expect.raw &&
47
48 test_cmp expect actual
49'
50
51test_expect_success 'rev-list lists blobs and trees after commits' '
52 git rev-list --objects HEAD >actual.raw &&
11b6961f 53 cut -d" " -f1 >actual <actual.raw &&
ce5b6f9b
SB
54
55 git cat-file --batch-check="%(objectname)" >expect.raw <<-\EOF &&
56 HEAD^{commit}
57 HEAD~1^{commit}
58 HEAD~2^{commit}
59 HEAD~3^{commit}
60 HEAD~4^{commit}
61 HEAD~5^{commit}
62 HEAD^{tree}
63 HEAD^{tree}:one
64 HEAD^{tree}:two
65 HEAD~1^{tree}
66 HEAD~1^{tree}:three
67 HEAD~2^{tree}
68 HEAD~2^{tree}:four
69 # HEAD~3^{tree} skipped, same as HEAD~1^{tree}
70 # HEAD~4^{tree} skipped, same as HEAD^{tree}
71 HEAD~5^{tree}
72 EOF
73 grep -v "#" >expect <expect.raw &&
74
75 test_cmp expect actual
76'
77
78test_done