diff options
author | Eric Sunshine <sunshine@sunshineco.com> | 2017-12-11 18:16:12 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-12-11 16:05:50 -0800 |
commit | b3b05971c1e51bb991c768fb8cead2c0501fa93e (patch) | |
tree | 629d80b21cfbcbb0d13c473199fa07880e736498 /t | |
parent | clone: better error when --reference is a linked checkout (diff) | |
download | tgif-b3b05971c1e51bb991c768fb8cead2c0501fa93e.tar.xz |
clone: support 'clone --shared' from a worktree
When worktree functionality was originally implemented, the possibility
of 'clone --local' from within a worktree was overlooked, with the
result that the location of the "objects" directory of the source
repository was computed incorrectly, thus the objects could not be
copied or hard-linked by the clone. This shortcoming was addressed by
744e469755 (clone: allow --local from a linked checkout, 2015-09-28).
However, the related case of 'clone --shared' (despite being handled
only a few lines away from the 'clone --local' case) was not fixed by
744e469755, with a similar result of the "objects" directory location
being incorrectly computed for insertion into the 'alternates' file.
Fix this.
Reported-by: Marc-André Lureau <marcandre.lureau@gmail.com>
Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't')
-rwxr-xr-x | t/t2025-worktree-add.sh | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/t/t2025-worktree-add.sh b/t/t2025-worktree-add.sh index 3694174989..8f3e726d35 100755 --- a/t/t2025-worktree-add.sh +++ b/t/t2025-worktree-add.sh @@ -198,4 +198,10 @@ test_expect_success 'local clone from linked checkout' ' ( cd here-clone && git fsck ) ' +test_expect_success 'local clone --shared from linked checkout' ' + git -C bare worktree add --detach ../baretree && + git clone --local --shared baretree bare-clone && + grep /bare/ bare-clone/.git/objects/info/alternates +' + test_done |