From: Junio C Hamano <gitster@pobox.com>
To: Jeff King <peff@peff.net>
Cc: Adam Piatyszek <ediap@users.sourceforge.net>,
Linus Torvalds <torvalds@linux-foundation.org>,
pradeep singh rautela <rautelap@gmail.com>,
git@vger.kernel.org
Subject: Re: [PATCH] gitignore(5): Allow "foo/" in ignore list to match directory "foo"
Date: Thu, 31 Jan 2008 02:35:33 -0800 [thread overview]
Message-ID: <7vfxwecmfe.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <20080131094124.GA25546@coredump.intra.peff.net> (Jeff King's message of "Thu, 31 Jan 2008 04:41:25 -0500")
Jeff King <peff@peff.net> writes:
> You can at least lazily do the stat so that only users of foo/ need to
> pay the penalty. Something like this (completely untested):
Without "foo/", you do not have to pay the price, so I think
that is a sane optimization, but at the same time it would make
it worse if "foo/" is actually used. excluded_1() is called for
the same pathname from a loop to check for a match and you would
end up running lstat(2) three times (once each for EXC_CMDL,
EXC_DIRS and EXC_FILE).
But maybe people who want "foo/" deserve it. I dunno.
In any case, if you do this...
> @@ -581,7 +587,7 @@ static int read_directory_recursive(struct dir_struct *dir, const char *path, co
> if (simplify_away(fullname, baselen + len, simplify))
> continue;
>
> - dtype = get_dtype(de, fullname);
> + dtype = get_dtype(de, fullname, 0);
> exclude = excluded(dir, fullname, dtype);
> if (exclude && dir->collect_ignored
> && in_pathspec(fullname, baselen + len, simplify))
... I think you would need to get the real dtype again in later
part of this function after exclude() decides it should not
ignore it, before the "switch (dtype)" really uses it, on
systems with NO_D_TYPE_IN_DIRENT.
next prev parent reply other threads:[~2008-01-31 10:36 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-23 13:54 Why does git track directory listed in .gitignore/".git/info/exclude"? pradeep singh rautela
2008-01-23 14:04 ` pradeep singh rautela
2008-01-23 21:17 ` Linus Torvalds
2008-01-24 10:44 ` pradeep singh rautela
2008-01-30 12:35 ` Adam Piatyszek
2008-01-30 20:39 ` Junio C Hamano
2008-01-30 21:06 ` Junio C Hamano
2008-01-31 7:05 ` Adam Piatyszek
2008-01-31 8:54 ` *Re: " Junio C Hamano
2008-01-31 9:17 ` [PATCH] gitignore(5): Allow "foo/" in ignore list to match directory "foo" Junio C Hamano
2008-01-31 9:41 ` Jeff King
2008-01-31 10:35 ` Junio C Hamano [this message]
2008-01-31 10:42 ` Jeff King
2008-01-31 11:38 ` Johannes Schindelin
2008-01-31 11:56 ` pradeep singh rautela
2008-01-31 21:51 ` Junio C Hamano
2008-01-31 22:53 ` Adam Piatyszek
2008-02-01 8:56 ` Andreas Ericsson
2008-01-31 12:29 ` Adam Piatyszek
2008-01-23 21:11 ` Why does git track directory listed in .gitignore/".git/info/exclude"? Wayne Davison
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=7vfxwecmfe.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=ediap@users.sourceforge.net \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--cc=rautelap@gmail.com \
--cc=torvalds@linux-foundation.org \
/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;
as well as URLs for NNTP newsgroup(s).