| #!/bin/sh |
| |
| test_description='git add -u with path limiting |
| |
| This test creates a working tree state with three files: |
| |
| top (previously committed, modified) |
| dir/sub (previously committed, modified) |
| dir/other (untracked) |
| |
| and issues a git add -u with path limiting on "dir" to add |
| only the updates to dir/sub.' |
| |
| . ./test-lib.sh |
| |
| test_expect_success 'setup' ' |
| echo initial >top && |
| mkdir dir && |
| echo initial >dir/sub && |
| git add dir/sub top && |
| git-commit -m initial && |
| echo changed >top && |
| echo changed >dir/sub && |
| echo other >dir/other |
| ' |
| |
| test_expect_success 'update' 'git add -u dir' |
| |
| test_expect_success 'update touched correct path' \ |
| 'test "`git diff-files --name-status dir/sub`" = ""' |
| |
| test_expect_success 'update did not touch other tracked files' \ |
| 'test "`git diff-files --name-status top`" = "M top"' |
| |
| test_expect_success 'update did not touch untracked files' \ |
| 'test "`git diff-files --name-status dir/other`" = ""' |
| |
| test_done |