diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt index b14de6c407..87c13ab13e 100644 --- a/Documentation/git-clone.txt +++ b/Documentation/git-clone.txt @@ -76,7 +76,7 @@ then the cloned repository will become corrupt. --reference :: - If the reference repository is on the local machine + If the reference repository is on the local machine, automatically setup .git/objects/info/alternates to obtain objects from the reference repository. Using an already existing repository as an alternate will diff --git a/builtin-clone.c b/builtin-clone.c index ba286e0160..6605e83407 100644 --- a/builtin-clone.c +++ b/builtin-clone.c @@ -551,8 +551,10 @@ int cmd_clone(int argc, const char **argv, const char *prefix) option_no_checkout = 1; } - if (transport) + if (transport) { transport_unlock_pack(transport); + transport_disconnect(transport); + } if (!option_no_checkout) { struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file)); diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh index 2335d8bc85..214756731b 100755 --- a/t/t5601-clone.sh +++ b/t/t5601-clone.sh @@ -149,11 +149,13 @@ test_expect_success 'clone a void' ' ( cd src-0 && git init ) && - git clone src-0 target-6 && + git clone "file://$(pwd)/src-0" target-6 2>err-6 && + ! grep "fatal:" err-6 && ( cd src-0 && test_commit A ) && - git clone src-0 target-7 && + git clone "file://$(pwd)/src-0" target-7 2>err-7 && + ! grep "fatal:" err-7 && # There is no reason to insist they are bit-for-bit # identical, but this test should suffice for now. test_cmp target-6/.git/config target-7/.git/config