diff options
| author | Nguyễn Thái Ngọc Duy <pclouds@gmail.com> | 2015-09-28 20:06:15 +0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2015-09-28 10:46:35 -0700 |
| commit | 744e4697555d4982acf0862f8fa6b15dd4796c37 (patch) | |
| tree | 2898f43f225e423371f8567b6d8b7982c10f08c8 | |
| parent | enter_repo: allow .git files in strict mode (diff) | |
| download | git-744e4697555d4982acf0862f8fa6b15dd4796c37.tar.gz git-744e4697555d4982acf0862f8fa6b15dd4796c37.zip | |
clone: allow --local from a linked checkout
Noticed-by: Bjørnar Snoksrud <snoksrud@gmail.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | builtin/clone.c | 6 | ||||
| -rwxr-xr-x | t/t2025-worktree-add.sh | 5 |
2 files changed, 9 insertions, 2 deletions
diff --git a/builtin/clone.c b/builtin/clone.c index 578da85254..39d4adf7d1 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_addstr(&dest, "/objects"); 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 8267411a0e..3694174989 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 |
