Reset possible helper before reusing remote structure
authorIlari Liusvaara <ilari.liusvaara@elisanet.fi>
Sat, 9 Jan 2010 17:28:12 +0000 (19:28 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sun, 10 Jan 2010 06:38:49 +0000 (22:38 -0800)
If one had multiple URLs configured for remote with previous one
having forced helper but the subsequent one not, like:

url = foo::bar://baz
url = ssh://example/example.git

Then the subsequent URL is passed to foo helper, which isn't
correct. Fix it to be parsed normally by resetting foreign VCS
name before parsing the URL protocol.

Signed-off-by: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
transport.c

index 652bf0bd8394056d3de558d0eb1635e02fc9f329..b5332c018b2951f63b15f51a3e3fb00999532a96 100644 (file)
@@ -875,6 +875,9 @@ struct transport *transport_get(struct remote *remote, const char *url)
                url = remote->url[0];
        ret->url = url;
 
+       /* In case previous URL had helper forced, reset it. */
+       remote->foreign_vcs = NULL;
+
        /* maybe it is a foreign URL? */
        if (url) {
                const char *p = url;