From: Junio C Hamano <gitster@pobox.com>
To: Sitaram Chamarty <sitaramc@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: How do I qualify paths in the .gitignore file w.r.t. the repo root directory?
Date: Tue, 24 Feb 2009 09:33:26 -0800 [thread overview]
Message-ID: <7vzlgbhh95.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: slrngq7e6c.iti.sitaramc@sitaramc.homelinux.net
Sitaram Chamarty <sitaramc@gmail.com> writes:
> On 2009-02-24, Junio C Hamano <gitster@pobox.com> wrote:
>> I think you are looking for "/foo/". From Documentation/gitignore.txt:
>
> [lots of very clear and detailed explanation snipped for
> brevity...]
>
> I'd been sort of struggling with the part of 'man gitignore'
> that describes the rules for the exclusion patterns; it just
> didn't seem as clear as it could have been. It's very
> accurate, but I (and I noticed a few others on irc) had to
> read very carefully to do anything moderately complex.
The existing documentation has an unfortunate history behind it and the
"if it ends with a slash it matches only directories" was bolted on as an
afterthought; see d6b8fc3 (gitignore(5): Allow "foo/" in ignore list to
match directory "foo", 2008-01-31).
> A few days ago, 'doener' (Björn Steinbrink) came up with
> some much simpler rules that said the same thing, and --
> building on the insight that his rules gave me -- I came up
> with these:
>
> ----->8-----
>
> Note that rule 1 merely *modifies* rules 2 and 3, it does not
> supercede or preclude them.
>
> 1. If you pattern ends with a slash, it matches only
> directories (and their contents)
> 2. If there is no slash otherwise, it matches that name, at
> any depth in the tree
> 3. If there is a slash anywhere else, it matches that name,
> relative to the .gitignore (or $GIT_WORK_TREE if the
> pattern is from one of the other pattern sources like
> `.git/info/exclude` etc)
>
> The wildcards (`*` and `?`) do not match slashes, but otherwise
> the patterns are normal shell globs as defined by fnmatch(3) with
> the FNM_PATHNAME flag set.
>
> ----->8-----
Nicely written, except that as a non-native speaker I fear "otherwise" and
"anywhere else" _might_ leave ambiguity for a pattern that has slash only
at the end [*1*], but I dunno. It certainly is much better than what I
wrote in the current documentation.
Please send it in a patch form (possibly addressing my ambiguity concern
if it is real for other people) with a one-liner log message that says
"The existing documentation is unreadable even though it may be precise",
and I'll apply.
Thanks.
[Footnote]
*1* That is why I wrote "it is removed for the purpose of..." in the
description, even though I do agree that paragraph is hard to read.
Perhaps I should have said "it only matches directories. The slash at the
end is ignored for the purpose of the following rules." which probably
would have flowed a bit more naturally.
next prev parent reply other threads:[~2009-02-24 17:35 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-24 6:47 How do I qualify paths in the .gitignore file w.r.t. the repo root directory? Brent Goodrick
2009-02-24 7:06 ` Junio C Hamano
2009-02-24 9:07 ` Sitaram Chamarty
2009-02-24 17:33 ` Junio C Hamano [this message]
2009-02-24 18:31 ` Sitaram Chamarty
2009-02-25 3:31 ` Sitaram Chamarty
2009-02-25 8:36 ` Junio C Hamano
2009-02-25 11:17 ` Sitaram Chamarty
2009-02-25 21:25 ` Junio C Hamano
2009-02-26 0:45 ` Björn Steinbrink
2009-02-26 1:23 ` Sitaram Chamarty
2009-02-26 3:48 ` Sitaram Chamarty
2009-02-26 17:04 ` Junio C Hamano
2009-02-25 1:14 ` Brent Goodrick
2009-02-25 4:01 ` Sitaram Chamarty
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=7vzlgbhh95.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=sitaramc@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox