From: Dennis Kaarsemaker <dennis@kaarsemaker.net>
To: Thomas Rast <tr@thomasrast.ch>
Cc: Duy Nguyen <pclouds@gmail.com>,
Git Mailing List <git@vger.kernel.org>,
ingy@ingy.net
Subject: Re: [PATCH] path_treatment: also ignore $GIT_DIR if it's not .git
Date: Mon, 02 Dec 2013 00:38:13 +0100 [thread overview]
Message-ID: <1385941093.3240.10.camel@localhost> (raw)
In-Reply-To: <877gbop3so.fsf@linux-1gf2.Speedport_W723_V_Typ_A_1_00_098>
On ma, 2013-12-02 at 00:08 +0100, Thomas Rast wrote:
> Duy Nguyen <pclouds@gmail.com> writes:
>
> > On Mon, Dec 2, 2013 at 2:04 AM, Dennis Kaarsemaker
> > <dennis@kaarsemaker.net> wrote:
> >> We always ignore anything named .git, but we should also ignore the git
> >> directory if the user overrides it by setting $GIT_DIR
> [...]
> >> + if (simplify_away(path->buf, path->len, simplify) || is_git_directory(path->buf))
> >> return path_none;
> >
> > this adds 2 access, 1 lstat, 1 open, 1 read, 1 close to _every_ path
> > we check. Is it worth the cost?
>
> Moreover it is a much more inclusive check than what the commit message
> claims: it will ignore anything that looks like a .git directory,
> regardless of the name. In particular GIT_DIR doesn't have anything to
> do with it.
Ah, yes thanks, that's rather incorrect indeed. How about the following
instead? Passes all tests, including the new one.
--- a/dir.c
+++ b/dir.c
@@ -1198,7 +1198,7 @@ static enum path_treatment treat_path(struct dir_struct *dir,
return path_none;
strbuf_setlen(path, baselen);
strbuf_addstr(path, de->d_name);
- if (simplify_away(path->buf, path->len, simplify))
+ if (simplify_away(path->buf, path->len, simplify) || !strncmp(get_git_dir(), path->buf, path->len))
return path_none;
--
Dennis Kaarsemaker
www.kaarsemaker.net
next prev parent reply other threads:[~2013-12-01 23:38 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-01 7:06 GIT_DIR not auto ignored Ingy dot Net
2013-12-01 18:08 ` Dennis Kaarsemaker
2013-12-01 18:30 ` Dennis Kaarsemaker
2013-12-01 19:04 ` [PATCH] path_treatment: also ignore $GIT_DIR if it's not .git Dennis Kaarsemaker
2013-12-01 23:02 ` Duy Nguyen
2013-12-01 23:08 ` Thomas Rast
2013-12-01 23:38 ` Dennis Kaarsemaker [this message]
2013-12-02 0:38 ` Duy Nguyen
2013-12-02 8:01 ` Dennis Kaarsemaker
2013-12-02 9:35 ` Duy Nguyen
2013-12-02 11:40 ` Dennis Kaarsemaker
2013-12-02 12:01 ` Duy Nguyen
2013-12-02 1:21 ` Eric Sunshine
2013-12-03 15:18 ` Karsten Blees
2013-12-03 18:32 ` Junio C Hamano
2013-12-03 19:00 ` Karsten Blees
2013-12-03 19:07 ` Jonathan Nieder
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=1385941093.3240.10.camel@localhost \
--to=dennis@kaarsemaker.net \
--cc=git@vger.kernel.org \
--cc=ingy@ingy.net \
--cc=pclouds@gmail.com \
--cc=tr@thomasrast.ch \
/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.