aboutsummaryrefslogtreecommitdiffstats
path: root/merge.c
diff options
context:
space:
mode:
Diffstat (limited to 'merge.c')
-rw-r--r--merge.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/merge.c b/merge.c
index b60925459c..5ecaf508e4 100644
--- a/merge.c
+++ b/merge.c
@@ -1,6 +1,6 @@
+#define USE_THE_REPOSITORY_VARIABLE
+
#include "git-compat-util.h"
-#include "diff.h"
-#include "diffcore.h"
#include "gettext.h"
#include "hash.h"
#include "hex.h"
@@ -13,7 +13,6 @@
#include "tree.h"
#include "tree-walk.h"
#include "unpack-trees.h"
-#include "dir.h"
static const char *merge_argument(struct commit *commit)
{
@@ -26,11 +25,11 @@ int try_merge_command(struct repository *r,
const char *head_arg, struct commit_list *remotes)
{
struct child_process cmd = CHILD_PROCESS_INIT;
- int i, ret;
+ int ret;
struct commit_list *j;
strvec_pushf(&cmd.args, "merge-%s", strategy);
- for (i = 0; i < xopts_nr; i++)
+ for (size_t i = 0; i < xopts_nr; i++)
strvec_pushf(&cmd.args, "--%s", xopts[i]);
for (j = common; j; j = j->next)
strvec_push(&cmd.args, merge_argument(j->item));
@@ -80,8 +79,12 @@ int checkout_fast_forward(struct repository *r,
return -1;
}
for (i = 0; i < nr_trees; i++) {
- parse_tree(trees[i]);
- init_tree_desc(t+i, trees[i]->buffer, trees[i]->size);
+ if (parse_tree(trees[i]) < 0) {
+ rollback_lock_file(&lock_file);
+ return -1;
+ }
+ init_tree_desc(t+i, &trees[i]->object.oid,
+ trees[i]->buffer, trees[i]->size);
}
memset(&opts, 0, sizeof(opts));