]> git.ipfire.org Git - thirdparty/git.git/blobdiff - remote.c
Merge branch 'rs/refspec-leakfix'
[thirdparty/git.git] / remote.c
index ba1a386d98f9cd1bdc15254bb57219ab5a8b7849..eafc14cbe759ed98096e68ce196013a3b026c67a 100644 (file)
--- a/remote.c
+++ b/remote.c
@@ -287,19 +287,15 @@ static void read_branches_file(struct remote *remote)
                frag = (char *)git_default_branch_name();
 
        add_url_alias(remote, strbuf_detach(&buf, NULL));
-       strbuf_addf(&buf, "refs/heads/%s:refs/heads/%s",
-                   frag, remote->name);
-       refspec_append(&remote->fetch, buf.buf);
+       refspec_appendf(&remote->fetch, "refs/heads/%s:refs/heads/%s",
+                       frag, remote->name);
 
        /*
         * Cogito compatible push: push current HEAD to remote #branch
         * (master if missing)
         */
-       strbuf_reset(&buf);
-       strbuf_addf(&buf, "HEAD:refs/heads/%s", frag);
-       refspec_append(&remote->push, buf.buf);
+       refspec_appendf(&remote->push, "HEAD:refs/heads/%s", frag);
        remote->fetch_tags = 1; /* always auto-follow */
-       strbuf_release(&buf);
 }
 
 static int handle_config(const char *key, const char *value, void *cb)
@@ -1558,7 +1554,7 @@ static void set_merge(struct branch *ret)
                    strcmp(ret->remote_name, "."))
                        continue;
                if (dwim_ref(ret->merge_name[i], strlen(ret->merge_name[i]),
-                            &oid, &ref) == 1)
+                            &oid, &ref, 0) == 1)
                        ret->merge[i]->dst = ref;
                else
                        ret->merge[i]->dst = xstrdup(ret->merge_name[i]);
@@ -1885,7 +1881,7 @@ static int stat_branch_pair(const char *branch_name, const char *base,
        struct object_id oid;
        struct commit *ours, *theirs;
        struct rev_info revs;
-       struct argv_array argv = ARGV_ARRAY_INIT;
+       struct strvec argv = STRVEC_INIT;
 
        /* Cannot stat if what we used to build on no longer exists */
        if (read_ref(base, &oid))
@@ -1911,15 +1907,15 @@ static int stat_branch_pair(const char *branch_name, const char *base,
                BUG("stat_branch_pair: invalid abf '%d'", abf);
 
        /* Run "rev-list --left-right ours...theirs" internally... */
-       argv_array_push(&argv, ""); /* ignored */
-       argv_array_push(&argv, "--left-right");
-       argv_array_pushf(&argv, "%s...%s",
-                        oid_to_hex(&ours->object.oid),
-                        oid_to_hex(&theirs->object.oid));
-       argv_array_push(&argv, "--");
+       strvec_push(&argv, ""); /* ignored */
+       strvec_push(&argv, "--left-right");
+       strvec_pushf(&argv, "%s...%s",
+                    oid_to_hex(&ours->object.oid),
+                    oid_to_hex(&theirs->object.oid));
+       strvec_push(&argv, "--");
 
        repo_init_revisions(the_repository, &revs, NULL);
-       setup_revisions(argv.argc, argv.argv, &revs, NULL);
+       setup_revisions(argv.nr, argv.v, &revs, NULL);
        if (prepare_revision_walk(&revs))
                die(_("revision walk setup failed"));
 
@@ -1938,7 +1934,7 @@ static int stat_branch_pair(const char *branch_name, const char *base,
        clear_commit_marks(ours, ALL_REV_FLAGS);
        clear_commit_marks(theirs, ALL_REV_FLAGS);
 
-       argv_array_clear(&argv);
+       strvec_clear(&argv);
        return 1;
 }