Re: [RFC PATCH] Fix gitdir detection when in subdir of gitdir
- From
Johannes Sixt <j.sixt@viscovery.net>
- Date
- Jan 16, 2009, 16:47 UTC
- Message-ID
- <4970BA2B.7090807@viscovery.net>
- In-Reply-To
- <alpine.DEB.1.00.0901161729070.3586@pacific.mpi-cbg.de>
Johannes Schindelin schrieb:
Show 13 quoted lines
> Hi,
>
> On Fri, 16 Jan 2009, SZEDER Gábor wrote:
>
>> I'm not sure about setting an absolut path instead of a relative one
>> (hence the RFC), although I think it should not make any difference.
>> Of course I could have count the number of chdir("..") calls and then
>> construct a "../../..", but that would have been more intrusive than
>> this two-liner.
>
> IIRC the absolute paths were shot down already... for performance reasons.
>
> So we try very hard to keep relative paths instead of absolute ones.This is a different matter.
The question is basically: How should git behave if $PWD is inside a bare repository? And if you are inside .git/refs, than for git this looks as if it were a bare repository.
The current behavior is that we chdir() up into .git, but do not set a prefix. Nor do we chdir() back where we started after the discovery.
Gábor's patch needs a better justification which misbehavior it tries to fix, and the spot that it changes:
if (is_git_directory(".")) {
inside_git_dir = 1;
if (!work_tree_env)
inside_work_tree = 0;
setenv(GIT_DIR_ENVIRONMENT, ".", 1);
check_repository_format_gently(nongit_ok);
return NULL;
}needs a comment why it does what it does (and that this if-branch is only about bare repositories).
-- Hannes