| #!/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 |