From: Junio C Hamano Date: Sun, 18 Jan 2009 21:27:44 GMT Subject: Re: [RFC PATCH] Fix gitdir detection when in subdir of gitdir Message-ID: <7vhc3wuwxb.fsf@gitster.siamese.dyndns.org> In-Reply-To: <7vr63386rc.fsf@gitster.siamese.dyndns.org> Junio C Hamano writes: > I think (1) the solution (almost) makes sense, (2) the patch needs to be > explained a lot better as you mentioned in your two messages, and (3) if > it does not affect any other case than when you are in a subdirectory of > the .git/ directory, then you are doing something funny anyway and > performance issue Dscho mentions, if any, is not a concern. > > My "(almost)" in (1) above is because the patch uses this new behaviour > even when you are inside the .git/ directory itself (or at the root of a > bare repository), which is a very common case that we do not have to nor > want to change the behaviour. It also invalidates the precondition of (3) > above. And this is a trivial follow-up on top of Szeder's patch. setup.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git c/setup.c w/setup.c index 4049298..dd7c039 100644 --- c/setup.c +++ w/setup.c @@ -456,8 +456,11 @@ const char *setup_git_directory_gently(int *nongit_ok) inside_git_dir = 1; if (!work_tree_env) inside_work_tree = 0; - cwd[offset] = '\0'; - setenv(GIT_DIR_ENVIRONMENT, cwd, 1); + if (offset != len) { + cwd[offset] = '\0'; + setenv(GIT_DIR_ENVIRONMENT, cwd, 1); + } else + setenv(GIT_DIR_ENVIRONMENT, ".", 1); check_repository_format_gently(nongit_ok); return NULL; }