Re: What's cooking in git.git (Jan 2009, #07; Wed, 28)
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 13 quoted lines
>> diff --git a/builtin-clone.c b/builtin-clone.c
>> index f73029e..431c136 100644
>> --- a/builtin-clone.c
>> +++ b/builtin-clone.c
>> @@ -350,6 +350,18 @@ static struct ref *write_remote_refs(const struct ref *refs,
>> return local_refs;
>> }
>>
>> +static void install_branch_config(const char *origin, const char *local,
>> + const char *remote)
>
> I would have used a different order (local, origin, remote), but that's
> okay, I guess.
Ok, here is an incremental that will be squashed.
builtin-clone.c | 7 ++++---
t/t5601-clone.sh | 15 +++++++++++++++
2 files changed, 19 insertions(+), 3 deletions(-)
diff --git a/builtin-clone.c b/builtin-clone.c
index 431c136..c338910 100644
--- a/builtin-clone.c
+++ b/builtin-clone.c
@@ -350,7 +350,8 @@ static struct ref *write_remote_refs(const struct ref *refs,
return local_refs;
}
-static void install_branch_config(const char *origin, const char *local,
+static void install_branch_config(const char *local,
+ const char *origin,
const char *remote)
{
struct strbuf key = STRBUF_INIT;
@@ -552,7 +553,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
remote_head = NULL;
option_no_checkout = 1;
if (!option_bare)
- install_branch_config(option_origin, "master",
+ install_branch_config("master", option_origin,
"refs/heads/master");
}
@@ -582,7 +583,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
head_points_at->peer_ref->name,
reflog_msg.buf);
- install_branch_config(option_origin, head,
+ install_branch_config(head, option_origin,
head_points_at->name);
}
} else if (remote_head) {
diff --git a/t/t5601-clone.sh b/t/t5601-clone.sh
index fe287d3..44793f2 100755
--- a/t/t5601-clone.sh
+++ b/t/t5601-clone.sh
@@ -144,4 +144,19 @@ test_expect_success 'clone to an existing path' '
test_must_fail git clone src target-5
'
+test_expect_success 'clone a void' '
+ mkdir src-0 &&
+ (
+ cd src-0 && git init
+ ) &&
+ git clone src-0 target-6 &&
+ (
+ cd src-0 && test_commit A
+ ) &&
+ git clone src-0 target-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
+'
+
test_done