Browse Source

clone: pass the remote name to remote_get

Currently when using a remote helper to clone a repository, the
remote helper will be passed the url of the target repository as
first argument (which represents the name of the remote). This name
is extracted from transport->remote->name, which is set by
builtin/clone.c when it calls remote_get with argv[0] as argument.

Fix this by passing the name remote will be set up as instead.

However, setup_reference calls remote_get before the remote is
added to the config file. This will result in an improperly
configured remote (in memory) if later on remote_get is called
with an argument that is not equal to the initial remote_get call
in setup_reference. Fix this by delaying the remote_get call until
after the remote has been added to the config file.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Sverre Rabbelier 15 years ago committed by Junio C Hamano
parent
commit
766ac6a6ba
  1. 8
      builtin/clone.c

8
builtin/clone.c

@ -470,9 +470,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix) @@ -470,9 +470,6 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
*/
unsetenv(CONFIG_ENVIRONMENT);

if (option_reference)
setup_reference(git_dir);

git_config(git_default_config, NULL);

if (option_bare) {
@ -504,6 +501,9 @@ int cmd_clone(int argc, const char **argv, const char *prefix) @@ -504,6 +501,9 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
strbuf_reset(&key);
}

if (option_reference)
setup_reference(git_dir);

fetch_pattern = value.buf;
refspec = parse_fetch_refspec(1, &fetch_pattern);

@ -513,7 +513,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix) @@ -513,7 +513,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
refs = clone_local(path, git_dir);
mapped_refs = wanted_peer_refs(refs, refspec);
} else {
struct remote *remote = remote_get(argv[0]);
struct remote *remote = remote_get(option_origin);
transport = transport_get(remote, remote->url[0]);

if (!transport->get_refs_list || !transport->fetch)

Loading…
Cancel
Save