From: Duy Nguyen Date: Sun, 01 Dec 2013 23:02:32 GMT Subject: Re: [PATCH] path_treatment: also ignore $GIT_DIR if it's not .git Message-ID: In-Reply-To: <20131201190447.GA31367@kaarsemaker.net> On Mon, Dec 2, 2013 at 2:04 AM, Dennis Kaarsemaker wrote: > We always ignore anything named .git, but we should also ignore the git > directory if the user overrides it by setting $GIT_DIR > > Reported-By: Ingy döt Net > Signed-off-by: Dennis Kaarsemaker > --- > dir.c | 2 +- > t/t7508-status.sh | 7 +++++++ > 2 files changed, 8 insertions(+), 1 deletion(-) > > diff --git a/dir.c b/dir.c > index 23b6de4..884b37d 100644 > --- 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) || 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? > > dtype = DTYPE(de); > diff --git a/t/t7508-status.sh b/t/t7508-status.sh > index c987b5e..2bd7ef1 100755 > --- a/t/t7508-status.sh > +++ b/t/t7508-status.sh > @@ -198,6 +198,13 @@ test_expect_success 'status -s' ' > > ' > > +test_expect_success 'status -s with non-standard $GIT_DIR' ' > + mv .git .foo && > + GIT_DIR=.foo git status -s >output && > + test_cmp expect output && > + mv .foo .git > +' > + > test_expect_success 'status with gitignore' ' > { > echo ".gitignore" && > -- > 1.8.5-386-gb78cb96 > > > -- > Dennis Kaarsemaker > http://twitter.com/seveas > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Duy