summaryrefslogtreecommitdiff
path: root/merge-recursive.c
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2009-04-18 14:18:25 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2009-04-18 14:18:25 -0700
commiteb8a1c4aed2728e1be1c5e39fb9e5a3f4b209fc4 (patch)
treeb20cc784a712eb89f3f1392950472f95ed245966 /merge-recursive.c
parentdoc/git-daemon: add missing arguments to max-connections option (diff)
parentsimplify output of conflicting merge (diff)
downloadtgif-eb8a1c4aed2728e1be1c5e39fb9e5a3f4b209fc4.tar.xz
Merge branch 'cb/maint-merge-recursive-submodule-fix' into maint
* cb/maint-merge-recursive-submodule-fix: simplify output of conflicting merge update cache for conflicting submodule entries add tests for merging with submodules
Diffstat (limited to 'merge-recursive.c')
-rw-r--r--merge-recursive.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/merge-recursive.c b/merge-recursive.c
index ee853b990d..9bf5cc7175 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1121,21 +1121,13 @@ static int process_entry(struct merge_options *o,
o->branch1, o->branch2);
clean_merge = mfi.clean;
- if (mfi.clean)
- update_file(o, 1, mfi.sha, mfi.mode, path);
- else if (S_ISGITLINK(mfi.mode))
- output(o, 1, "CONFLICT (submodule): Merge conflict in %s "
- "- needs %s", path, sha1_to_hex(b.sha1));
- else {
+ if (!mfi.clean) {
+ if (S_ISGITLINK(mfi.mode))
+ reason = "submodule";
output(o, 1, "CONFLICT (%s): Merge conflict in %s",
reason, path);
-
- if (o->call_depth)
- update_file(o, 0, mfi.sha, mfi.mode, path);
- else
- update_file_flags(o, mfi.sha, mfi.mode, path,
- 0 /* update_cache */, 1 /* update_working_directory */);
}
+ update_file(o, mfi.clean, mfi.sha, mfi.mode, path);
} else if (!o_sha && !a_sha && !b_sha) {
/*
* this entry was deleted altogether. a_mode == 0 means