git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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(".");
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 19 of 28 in “workdirs: cannot clone a local workdir directory”
  1. Bjørnar SnoksrudJul 15, 2015
  2. Duy NguyenJul 15, 2015
  3. 0/5 fix local clone from a linked checkoutNguyễn Thái Ngọc Duy, Aug 22, 2015
  4. 1/5 path.c: delete an extra spaceNguyễn Thái Ngọc Duy, Aug 22, 2015
  5. 2/5 enter_repo: avoid duplicating logic, use is_git_directory() insteadNguyễn Thái Ngọc Duy, Aug 22, 2015
  6. Junio C HamanoSep 7, 2015
  7. Duy NguyenSep 13, 2015
  8. Junio C HamanoSep 13, 2015
  9. Duy NguyenSep 14, 2015
  10. Junio C HamanoSep 21, 2015
  11. 3/5 enter_repo: allow .git files in strict modeNguyễn Thái Ngọc Duy, Aug 22, 2015
  12. 4/5 clone: allow --local from a linked checkoutNguyễn Thái Ngọc Duy, Aug 22, 2015
  13. Junio C HamanoSep 7, 2015
  14. 5/5 clone: better error when --reference is a linked checkoutNguyễn Thái Ngọc Duy, Aug 22, 2015
  15. 0/5 fix local clone from a linked checkoutNguyễn Thái Ngọc Duy, Sep 13, 2015
  16. 1/5 path.c: delete an extra spaceNguyễn Thái Ngọc Duy, Sep 13, 2015
  17. 2/5 enter_repo: avoid duplicating logic, use is_git_directory() insteadNguyễn Thái Ngọc Duy, Sep 13, 2015
  18. 3/5 enter_repo: allow .git files in strict modeNguyễn Thái Ngọc Duy, Sep 13, 2015
  19. Junio C HamanoSep 25, 2015
  20. 4/5 clone: allow --local from a linked checkoutNguyễn Thái Ngọc Duy, Sep 13, 2015
  21. 5/5 clone: better error when --reference is a linked checkoutNguyễn Thái Ngọc Duy, Sep 13, 2015
  22. 0/6 fix local clone from a linked checkoutNguyễn Thái Ngọc Duy, Sep 28, 2015
  23. 1/6 path.c: delete an extra spaceNguyễn Thái Ngọc Duy, Sep 28, 2015
  24. 2/6 t0002: add test for enter_repo(), non-strict modeNguyễn Thái Ngọc Duy, Sep 28, 2015
  25. 3/6 enter_repo: avoid duplicating logic, use is_git_directory() insteadNguyễn Thái Ngọc Duy, Sep 28, 2015
  26. 4/6 enter_repo: allow .git files in strict modeNguyễn Thái Ngọc Duy, Sep 28, 2015
  27. 5/6 clone: allow --local from a linked checkoutNguyễn Thái Ngọc Duy, Sep 28, 2015
  28. 6/6 clone: better error when --reference is a linked checkoutNguyễn Thái Ngọc Duy, Sep 28, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.