packaging: Add contrib installation
[platform/upstream/git.git] / merge.c
diff --git a/merge.c b/merge.c
index 91008f7..5fb88af 100644 (file)
--- a/merge.c
+++ b/merge.c
@@ -19,25 +19,25 @@ int try_merge_command(struct repository *r,
                      const char **xopts, struct commit_list *common,
                      const char *head_arg, struct commit_list *remotes)
 {
-       struct argv_array args = ARGV_ARRAY_INIT;
+       struct strvec args = STRVEC_INIT;
        int i, ret;
        struct commit_list *j;
 
-       argv_array_pushf(&args, "merge-%s", strategy);
+       strvec_pushf(&args, "merge-%s", strategy);
        for (i = 0; i < xopts_nr; i++)
-               argv_array_pushf(&args, "--%s", xopts[i]);
+               strvec_pushf(&args, "--%s", xopts[i]);
        for (j = common; j; j = j->next)
-               argv_array_push(&args, merge_argument(j->item));
-       argv_array_push(&args, "--");
-       argv_array_push(&args, head_arg);
+               strvec_push(&args, merge_argument(j->item));
+       strvec_push(&args, "--");
+       strvec_push(&args, head_arg);
        for (j = remotes; j; j = j->next)
-               argv_array_push(&args, merge_argument(j->item));
+               strvec_push(&args, merge_argument(j->item));
 
-       ret = run_command_v_opt(args.argv, RUN_GIT_CMD);
-       argv_array_clear(&args);
+       ret = run_command_v_opt(args.v, RUN_GIT_CMD);
+       strvec_clear(&args);
 
        discard_index(r->index);
-       if (read_index(r->index) < 0)
+       if (repo_read_index(r) < 0)
                die(_("failed to read the cache"));
        resolve_undo_clear_index(r->index);
 
@@ -58,7 +58,7 @@ int checkout_fast_forward(struct repository *r,
 
        refresh_index(r->index, REFRESH_QUIET, NULL, NULL, NULL);
 
-       if (hold_locked_index(&lock_file, LOCK_REPORT_ON_ERROR) < 0)
+       if (repo_hold_locked_index(r, &lock_file, LOCK_REPORT_ON_ERROR) < 0)
                return -1;
 
        memset(&trees, 0, sizeof(trees));
@@ -80,8 +80,8 @@ int checkout_fast_forward(struct repository *r,
        }
 
        memset(&opts, 0, sizeof(opts));
+       dir_init(&dir);
        if (overwrite_ignore) {
-               memset(&dir, 0, sizeof(dir));
                dir.flags |= DIR_SHOW_IGNORED;
                setup_standard_excludes(&dir);
                opts.dir = &dir;
@@ -94,6 +94,7 @@ int checkout_fast_forward(struct repository *r,
        opts.verbose_update = 1;
        opts.merge = 1;
        opts.fn = twoway_merge;
+       init_checkout_metadata(&opts.meta, NULL, remote, NULL);
        setup_unpack_trees_porcelain(&opts, "merge");
 
        if (unpack_trees(nr_trees, t, &opts)) {
@@ -101,6 +102,7 @@ int checkout_fast_forward(struct repository *r,
                clear_unpack_trees_porcelain(&opts);
                return -1;
        }
+       dir_clear(&dir);
        clear_unpack_trees_porcelain(&opts);
 
        if (write_locked_index(r->index, &lock_file, COMMIT_LOCK))