summaryrefslogtreecommitdiff
path: root/merge-recursive.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2009-04-08 05:32:56 (GMT)
committerJunio C Hamano <gitster@pobox.com>2009-04-08 05:32:56 (GMT)
commit2149e0f6a66cb4a5707ef6201763051d94f288af (patch)
treef5bebcfe1204bd161cffe277c1e8dc0194e21066 /merge-recursive.c
parentd65279d5bf02f3c457a843c8586752714f42e75a (diff)
parent39d8e271f42e976a61f08a4f7bc2047a682ac532 (diff)
downloadgit-2149e0f6a66cb4a5707ef6201763051d94f288af.zip
git-2149e0f6a66cb4a5707ef6201763051d94f288af.tar.gz
git-2149e0f6a66cb4a5707ef6201763051d94f288af.tar.bz2
Merge branch 'cb/maint-merge-recursive-submodule-fix'
* 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 3e1bc3e..d6f0582 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1116,21 +1116,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