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