| #!/bin/sh | 
 |  | 
 | test_description='rev-list testing in-commit-order' | 
 |  | 
 | . ./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 |