From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>
Cc: skillzero@gmail.com, "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 1/3] t3700: note a .gitignore matching fault
Date: Mon, 2 May 2011 19:47:42 +0700 [thread overview]
Message-ID: <1304340464-14829-1-git-send-email-pclouds@gmail.com> (raw)
.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() (or its callers) 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>
---
Haven't figured out how to cleanly fix this yet, unfortunately.
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..6c3eed6 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 '' '
+ 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
next reply other threads:[~2011-05-02 12:50 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-02 12:47 Nguyễn Thái Ngọc Duy [this message]
2011-05-02 12:47 ` [PATCH 2/3] t1011: fix sparse-checkout initialization and add new file Nguyễn Thái Ngọc Duy
2011-05-02 12:47 ` [PATCH 3/3] sparse checkout: do not eagerly decide the fate for whole directory Nguyễn Thái Ngọc Duy
2011-05-03 2:14 ` Thiago Farina
2011-05-03 4:43 ` Nguyen Thai Ngoc Duy
2011-05-10 23:37 ` Junio C Hamano
2011-05-11 12:03 ` Nguyen Thai Ngoc Duy
[not found] ` <1304955781-13566-1-git-send-email-pclouds@gmail.com>
2011-05-09 22:22 ` Junio C Hamano
2011-05-02 12:55 ` [PATCH 1/3] t3700: note a .gitignore matching fault Nguyễn Thái Ngọc Duy
2011-05-02 15:01 ` Johannes Sixt
2011-05-02 15:52 ` Nguyen Thai Ngoc Duy
2011-05-03 17:56 ` Junio C Hamano
2011-05-03 23:43 ` Nguyen Thai Ngoc Duy
2011-05-03 23:57 ` Junio C Hamano
2011-05-04 0:41 ` Nguyen Thai Ngoc Duy
2011-05-04 1:05 ` Nguyen Thai Ngoc Duy
2011-05-04 6:06 ` Johannes Sixt
2011-05-04 6:22 ` Nguyen Thai Ngoc Duy
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1304340464-14829-1-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=skillzero@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.