Re: [PATCH v3 3/5] enter_repo: allow .git files in strict mode
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 25, 2015, 19:59 UTC
- Message-ID
- <xmqqwpve2ru2.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <1442106148-22895-4-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy <pclouds@gmail.com> writes:
Show 23 quoted lines
> 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 <pclouds@gmail.com>
> ---
> 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.
Show 8 quoted lines
> + if (gitfile)
> + path = gitfile;
> + if (chdir(path))
> + return NULL;
> + }
>
> if (is_git_directory(".")) {
> set_git_dir(".");