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

Re: [PATCH v2 4/5] clone: allow --local from a linked checkout

From
Junio C Hamano <gitster@pobox.com>
Date
Sep 7, 2015, 16:25 UTC
Message-ID
<xmqqd1xu9oxe.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<1440204002-7638-5-git-send-email-pclouds@gmail.com>
Nguyễn Thái Ngọc Duy  <pclouds@gmail.com> writes:
Show 21 quoted lines
> Noticed-by: Bjørnar Snoksrud <snoksrud@gmail.com>
> Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
> ---
>  builtin/clone.c         | 6 ++++--
>  t/t2025-worktree-add.sh | 5 +++++
>  2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/builtin/clone.c b/builtin/clone.c
> index 578da85..836fb64 100644
> --- a/builtin/clone.c
> +++ b/builtin/clone.c
> @@ -424,8 +424,10 @@ static void clone_local(const char *src_repo, const char *dest_repo)
>  	} else {
>  		struct strbuf src = STRBUF_INIT;
>  		struct strbuf dest = STRBUF_INIT;
> -		strbuf_addf(&src, "%s/objects", src_repo);
> -		strbuf_addf(&dest, "%s/objects", dest_repo);
> +		get_common_dir(&src, src_repo);
> +		get_common_dir(&dest, dest_repo);
> +		strbuf_addstr(&src, "/objects");
> +		strbuf_addf(&dest, "/objects");
Why addstr vs addf?  Shouldn't both be addstr?
Show 17 quoted lines
>  		copy_or_link_directory(&src, &dest, src_repo, src.len);
>  		strbuf_release(&src);
>  		strbuf_release(&dest);
> diff --git a/t/t2025-worktree-add.sh b/t/t2025-worktree-add.sh
> index 8267411..3694174 100755
> --- a/t/t2025-worktree-add.sh
> +++ b/t/t2025-worktree-add.sh
> @@ -193,4 +193,9 @@ test_expect_success '"add" -B/--detach mutually exclusive' '
>  	test_must_fail git worktree add -B poodle --detach bamboo master
>  '
>  
> +test_expect_success 'local clone from linked checkout' '
> +	git clone --local here here-clone &&
> +	( cd here-clone && git fsck )
> +'
> +
>  test_done
Previous: Nguyễn Thái Ngọc DuyNext: Nguyễn Thái Ngọc Duy
Message 13 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.