summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/git-clone.txt2
-rw-r--r--builtin-clone.c4
-rwxr-xr-xt/t5601-clone.sh6
3 files changed, 8 insertions, 4 deletions
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 <repository>::
- 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