From: Junio C Hamano Date: Fri, 25 Sep 2015 19:59:17 GMT Subject: Re: [PATCH v3 3/5] enter_repo: allow .git files in strict mode Message-ID: In-Reply-To: <1442106148-22895-4-git-send-email-pclouds@gmail.com> Nguyễn Thái Ngọc Duy writes: > Strict mode is about not guessing where .git is. If the user points to a > .git file, we know exactly where the target .git dir will be. > > This is needed even in local clone case because transport.c code uses > upload-pack for fetching remote refs. > > Signed-off-by: Nguyễn Thái Ngọc Duy > --- > path.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/path.c b/path.c > index 7340e11..32d4ca6 100644 > --- a/path.c > +++ b/path.c > @@ -438,8 +438,13 @@ const char *enter_repo(const char *path, int strict) > return NULL; > path = validated_path; > } > - else if (chdir(path)) > - return NULL; > + else { > + const char *gitfile = read_gitfile(used_path); At this point, used_path[] has not been touched since this function was called. What file are we reading from? Is that just a typo of used_path? Do we lack test that cover this codepath? Thanks. > + if (gitfile) > + path = gitfile; > + if (chdir(path)) > + return NULL; > + } > > if (is_git_directory(".")) { > set_git_dir(".");