mirror of
https://github.com/git/git.git
synced 2024-11-28 20:44:04 +08:00
c94ab01026
'git-status --ignored' lists empty untracked directories as ignored, even though they don't have any ignored files. When checking if a directory is already listed as untracked (i.e. shouldn't be listed as ignored as well), don't assume that the directory has only ignored files if it doesn't have untracked files, as the directory may be empty. Signed-off-by: Karsten Blees <blees@dcon.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
247 lines
5.0 KiB
Bash
Executable File
247 lines
5.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='git-status ignored files'
|
|
|
|
. ./test-lib.sh
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
?? untracked/
|
|
EOF
|
|
|
|
test_expect_success 'status untracked directory with --ignored' '
|
|
echo "ignored" >.gitignore &&
|
|
mkdir untracked &&
|
|
: >untracked/ignored &&
|
|
: >untracked/uncommitted &&
|
|
git status --porcelain --ignored >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
?? untracked/uncommitted
|
|
!! untracked/ignored
|
|
EOF
|
|
|
|
test_expect_success 'status untracked directory with --ignored -u' '
|
|
git status --porcelain --ignored -u >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
!! ignored/
|
|
EOF
|
|
|
|
test_expect_success 'status ignored directory with --ignore' '
|
|
rm -rf untracked &&
|
|
mkdir ignored &&
|
|
: >ignored/uncommitted &&
|
|
git status --porcelain --ignored >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
!! ignored/uncommitted
|
|
EOF
|
|
|
|
test_expect_success 'status ignored directory with --ignore -u' '
|
|
git status --porcelain --ignored -u >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
EOF
|
|
|
|
test_expect_success 'status empty untracked directory with --ignore' '
|
|
rm -rf ignored &&
|
|
mkdir untracked-ignored &&
|
|
mkdir untracked-ignored/test &&
|
|
git status --porcelain --ignored >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
EOF
|
|
|
|
test_expect_success 'status empty untracked directory with --ignore -u' '
|
|
git status --porcelain --ignored -u >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
!! untracked-ignored/
|
|
EOF
|
|
|
|
test_expect_success 'status untracked directory with ignored files with --ignore' '
|
|
: >untracked-ignored/ignored &&
|
|
: >untracked-ignored/test/ignored &&
|
|
git status --porcelain --ignored >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
!! untracked-ignored/ignored
|
|
!! untracked-ignored/test/ignored
|
|
EOF
|
|
|
|
test_expect_success 'status untracked directory with ignored files with --ignore -u' '
|
|
git status --porcelain --ignored -u >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
EOF
|
|
|
|
test_expect_success 'status ignored tracked directory with --ignore' '
|
|
rm -rf untracked-ignored &&
|
|
mkdir tracked &&
|
|
: >tracked/committed &&
|
|
git add tracked/committed &&
|
|
git commit -m. &&
|
|
echo "tracked" >.gitignore &&
|
|
git status --porcelain --ignored >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
EOF
|
|
|
|
test_expect_success 'status ignored tracked directory with --ignore -u' '
|
|
git status --porcelain --ignored -u >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
EOF
|
|
|
|
test_expect_success 'status ignored tracked directory and ignored file with --ignore' '
|
|
echo "committed" >>.gitignore &&
|
|
git status --porcelain --ignored >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
EOF
|
|
|
|
test_expect_success 'status ignored tracked directory and ignored file with --ignore -u' '
|
|
git status --porcelain --ignored -u >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
!! tracked/
|
|
EOF
|
|
|
|
test_expect_success 'status ignored tracked directory and uncommitted file with --ignore' '
|
|
echo "tracked" >.gitignore &&
|
|
: >tracked/uncommitted &&
|
|
git status --porcelain --ignored >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
!! tracked/uncommitted
|
|
EOF
|
|
|
|
test_expect_success 'status ignored tracked directory and uncommitted file with --ignore -u' '
|
|
git status --porcelain --ignored -u >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
!! tracked/
|
|
EOF
|
|
|
|
test_expect_success 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore' '
|
|
rm -rf tracked/uncommitted &&
|
|
mkdir tracked/ignored &&
|
|
: >tracked/ignored/uncommitted &&
|
|
git status --porcelain --ignored >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
!! tracked/ignored/uncommitted
|
|
EOF
|
|
|
|
test_expect_success 'status ignored tracked directory with uncommitted file in untracked subdir with --ignore -u' '
|
|
git status --porcelain --ignored -u >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
!! tracked/
|
|
EOF
|
|
|
|
test_expect_success 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore' '
|
|
: >tracked/ignored/committed &&
|
|
git add -f tracked/ignored/committed &&
|
|
git commit -m. &&
|
|
git status --porcelain --ignored >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
cat >expected <<\EOF
|
|
?? .gitignore
|
|
?? actual
|
|
?? expected
|
|
!! tracked/ignored/uncommitted
|
|
EOF
|
|
|
|
test_expect_success 'status ignored tracked directory with uncommitted file in tracked subdir with --ignore -u' '
|
|
git status --porcelain --ignored -u >actual &&
|
|
test_cmp expected actual
|
|
'
|
|
|
|
test_done
|