Code

Merge branch 'master' into db/fetch-pack
[git.git] / builtin-fetch.c
index b9722e5fbd1c727c258d3efe07923d0c99c3f250..caaca63644b91b414d808079e14aee38c2a6eda7 100644 (file)
@@ -102,7 +102,7 @@ static struct ref *get_ref_map(struct transport *transport,
                                    remote->fetch[i].dst[0])
                                        *autotags = 1;
                                if (!i && !has_merge && ref_map &&
-                                   !strcmp(remote->fetch[0].src, ref_map->name))
+                                   !remote->fetch[0].pattern)
                                        ref_map->merge = 1;
                        }
                        if (has_merge)
@@ -112,6 +112,7 @@ static struct ref *get_ref_map(struct transport *transport,
                        ref_map->merge = 1;
                }
        }
+       ref_remove_duplicates(ref_map);
 
        return ref_map;
 }
@@ -392,8 +393,7 @@ static int do_fetch(struct transport *transport,
        if (transport->remote->fetch_tags == -1)
                no_tags = 1;
 
-       if (!transport->ops || !transport->ops->get_refs_list ||
-           !transport->ops->fetch)
+       if (!transport->get_refs_list || !transport->fetch)
                die("Don't know how to fetch from %s", transport->url);
 
        /* if not appending, truncate FETCH_HEAD */
@@ -530,11 +530,11 @@ int cmd_fetch(int argc, const char **argv, const char *prefix)
        else
                remote = remote_get(argv[i++]);
 
-       transport = transport_get(remote, remote->uri[0]);
+       transport = transport_get(remote, remote->url[0]);
        if (verbose >= 2)
                transport->verbose = 1;
        if (quiet)
-               transport->verbose = 0;
+               transport->verbose = -1;
        if (upload_pack)
                set_option(TRANS_OPT_UPLOADPACK, upload_pack);
        if (keep)