about summary refs log tree commit diff
path: root/third_party/git/merge.c
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/merge.c')
-rw-r--r--third_party/git/merge.c111
1 files changed, 0 insertions, 111 deletions
diff --git a/third_party/git/merge.c b/third_party/git/merge.c
deleted file mode 100644
index 5fb88af10254..000000000000
--- a/third_party/git/merge.c
+++ /dev/null
@@ -1,111 +0,0 @@
-#include "cache.h"
-#include "diff.h"
-#include "diffcore.h"
-#include "lockfile.h"
-#include "commit.h"
-#include "run-command.h"
-#include "resolve-undo.h"
-#include "tree-walk.h"
-#include "unpack-trees.h"
-#include "dir.h"
-
-static const char *merge_argument(struct commit *commit)
-{
-	return oid_to_hex(commit ? &commit->object.oid : the_hash_algo->empty_tree);
-}
-
-int try_merge_command(struct repository *r,
-		      const char *strategy, size_t xopts_nr,
-		      const char **xopts, struct commit_list *common,
-		      const char *head_arg, struct commit_list *remotes)
-{
-	struct strvec args = STRVEC_INIT;
-	int i, ret;
-	struct commit_list *j;
-
-	strvec_pushf(&args, "merge-%s", strategy);
-	for (i = 0; i < xopts_nr; i++)
-		strvec_pushf(&args, "--%s", xopts[i]);
-	for (j = common; j; j = j->next)
-		strvec_push(&args, merge_argument(j->item));
-	strvec_push(&args, "--");
-	strvec_push(&args, head_arg);
-	for (j = remotes; j; j = j->next)
-		strvec_push(&args, merge_argument(j->item));
-
-	ret = run_command_v_opt(args.v, RUN_GIT_CMD);
-	strvec_clear(&args);
-
-	discard_index(r->index);
-	if (repo_read_index(r) < 0)
-		die(_("failed to read the cache"));
-	resolve_undo_clear_index(r->index);
-
-	return ret;
-}
-
-int checkout_fast_forward(struct repository *r,
-			  const struct object_id *head,
-			  const struct object_id *remote,
-			  int overwrite_ignore)
-{
-	struct tree *trees[MAX_UNPACK_TREES];
-	struct unpack_trees_options opts;
-	struct tree_desc t[MAX_UNPACK_TREES];
-	int i, nr_trees = 0;
-	struct dir_struct dir;
-	struct lock_file lock_file = LOCK_INIT;
-
-	refresh_index(r->index, REFRESH_QUIET, NULL, NULL, NULL);
-
-	if (repo_hold_locked_index(r, &lock_file, LOCK_REPORT_ON_ERROR) < 0)
-		return -1;
-
-	memset(&trees, 0, sizeof(trees));
-	memset(&t, 0, sizeof(t));
-
-	trees[nr_trees] = parse_tree_indirect(head);
-	if (!trees[nr_trees++]) {
-		rollback_lock_file(&lock_file);
-		return -1;
-	}
-	trees[nr_trees] = parse_tree_indirect(remote);
-	if (!trees[nr_trees++]) {
-		rollback_lock_file(&lock_file);
-		return -1;
-	}
-	for (i = 0; i < nr_trees; i++) {
-		parse_tree(trees[i]);
-		init_tree_desc(t+i, trees[i]->buffer, trees[i]->size);
-	}
-
-	memset(&opts, 0, sizeof(opts));
-	dir_init(&dir);
-	if (overwrite_ignore) {
-		dir.flags |= DIR_SHOW_IGNORED;
-		setup_standard_excludes(&dir);
-		opts.dir = &dir;
-	}
-
-	opts.head_idx = 1;
-	opts.src_index = r->index;
-	opts.dst_index = r->index;
-	opts.update = 1;
-	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)) {
-		rollback_lock_file(&lock_file);
-		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))
-		return error(_("unable to write new index file"));
-	return 0;
-}