|  | #!/bin/sh | 
|  |  | 
|  | test_description='test git ls-files --others with non-submodule repositories | 
|  |  | 
|  | This test runs git ls-files --others with the following working tree: | 
|  |  | 
|  | nonrepo-no-files/ | 
|  | plain directory with no files | 
|  | nonrepo-untracked-file/ | 
|  | plain directory with an untracked file | 
|  | repo-no-commit-no-files/ | 
|  | git repository without a commit or a file | 
|  | repo-no-commit-untracked-file/ | 
|  | git repository without a commit but with an untracked file | 
|  | repo-with-commit-no-files/ | 
|  | git repository with a commit and no untracked files | 
|  | repo-with-commit-untracked-file/ | 
|  | git repository with a commit and an untracked file | 
|  | ' | 
|  |  | 
|  | . ./test-lib.sh | 
|  |  | 
|  | test_expect_success 'setup: directories' ' | 
|  | mkdir nonrepo-no-files/ && | 
|  | mkdir nonrepo-untracked-file && | 
|  | : >nonrepo-untracked-file/untracked && | 
|  | git init repo-no-commit-no-files && | 
|  | git init repo-no-commit-untracked-file && | 
|  | : >repo-no-commit-untracked-file/untracked && | 
|  | git init repo-with-commit-no-files && | 
|  | git -C repo-with-commit-no-files commit --allow-empty -mmsg && | 
|  | git init repo-with-commit-untracked-file && | 
|  | test_commit -C repo-with-commit-untracked-file msg && | 
|  | : >repo-with-commit-untracked-file/untracked | 
|  | ' | 
|  |  | 
|  | test_expect_success 'ls-files --others handles untracked git repositories' ' | 
|  | git ls-files -o >output && | 
|  | cat >expect <<-EOF && | 
|  | nonrepo-untracked-file/untracked | 
|  | output | 
|  | repo-no-commit-no-files/ | 
|  | repo-no-commit-untracked-file/ | 
|  | repo-with-commit-no-files/ | 
|  | repo-with-commit-untracked-file/ | 
|  | EOF | 
|  | test_cmp expect output | 
|  | ' | 
|  |  | 
|  | test_done |