| #!/bin/sh | 
 |  | 
 | test_description='basic work tree status reporting' | 
 |  | 
 | . ./test-lib.sh | 
 |  | 
 | test_expect_success setup ' | 
 | 	test_commit A && | 
 | 	test_commit B oneside added && | 
 | 	git checkout A^0 && | 
 | 	test_commit C oneside created | 
 | ' | 
 |  | 
 | test_expect_success 'A/A conflict' ' | 
 | 	git checkout B^0 && | 
 | 	test_must_fail git merge C | 
 | ' | 
 |  | 
 | test_expect_success 'Report path with conflict' ' | 
 | 	git diff --cached --name-status >actual && | 
 | 	echo "U	oneside" >expect && | 
 | 	test_cmp expect actual | 
 | ' | 
 |  | 
 | test_expect_success 'Report new path with conflict' ' | 
 | 	git diff --cached --name-status HEAD^ >actual && | 
 | 	echo "U	oneside" >expect && | 
 | 	test_cmp expect actual | 
 | ' | 
 |  | 
 | cat >expect <<EOF | 
 | # On branch side | 
 | # Unmerged paths: | 
 | #   (use "git add/rm <file>..." as appropriate to mark resolution) | 
 | # | 
 | #	deleted by us:      foo | 
 | # | 
 | no changes added to commit (use "git add" and/or "git commit -a") | 
 | EOF | 
 |  | 
 | test_expect_success 'M/D conflict does not segfault' ' | 
 | 	mkdir mdconflict && | 
 | 	( | 
 | 		cd mdconflict && | 
 | 		git init && | 
 | 		test_commit initial foo "" && | 
 | 		test_commit modify foo foo && | 
 | 		git checkout -b side HEAD^ && | 
 | 		git rm foo && | 
 | 		git commit -m delete && | 
 | 		test_must_fail git merge master && | 
 | 		test_must_fail git commit --dry-run >../actual && | 
 | 		test_cmp ../expect ../actual && | 
 | 		git status >../actual && | 
 | 		test_cmp ../expect ../actual | 
 | 	) | 
 | ' | 
 |  | 
 | test_done |