[PATCH 1/3] t3700: note a .gitignore matching fault
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- May 2, 2011, 12:55 UTC
- Message-ID
- <1304340923-15927-1-git-send-email-pclouds@gmail.com>
- In-Reply-To
- <1304340464-14829-1-git-send-email-pclouds@gmail.com>
.gitignore support both positive and negative patterns. One may negate the other. Current code works well if both patterns target files in the same directory.
When a pattern targets a directory and an opposite pattern targets some files/directories within that directory, we need to descend in the directory until we're clear which ones are matched and which are not.
excluded_from_list() fails to handle this case. It too eagerly decides the fate of the whole directory without looking further in.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> --- Sorry, forgot the test name.
t/t3700-add.sh | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/t/t3700-add.sh b/t/t3700-add.sh index 7de42fa..c9f3a28 100755 --- a/t/t3700-add.sh +++ b/t/t3700-add.sh @@ -295,4 +295,20 @@ test_expect_success C_LOCALE_OUTPUT 'git add --dry-run --ignore-missing of non-e test_cmp expect.err actual.err ' +cat >expected <<EOF +add 'test/.gitignore' +add 'test/out/in' +EOF + +test_expect_failure C_LOCALE_OUTPUT 'positive/negative patterns at different dir levels' ' + mkdir -p test/out && + touch test/out/in test/out/out && + cat >test/.gitignore <<EOF && +out +!out/in +EOF + git add --dry-run test >actual && + test_cmp expected actual +' + test_done
-- 1.7.4.74.g639db