diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-09-12 02:01:52 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-09-12 02:01:52 -0700 |
commit | e0e2065f74500119d5e12524992273de362acd30 (patch) | |
tree | 4e28a9a1facca926c5fbbf3027417f0cf0a71aaa /ll-merge.c | |
parent | 155a4b712efd3d917c228d155ec57ec2c09d7ac0 (diff) | |
download | git-e0e2065f74500119d5e12524992273de362acd30.tar.gz |
ll-merge: warn about inability to merge binary files only when we can't
When a path being merged is auto detected to be a binary file, we
warned "Cannot merge binary files" before switching to activate the
binary ll-merge driver. When we are merging with the -Xours/theirs
option, however, we know what the "clean" merge result is, and the
warning is inappropriate.
In addition, when the path is explicitly marked as a binary file,
this warning was not issued, even though without -Xours/theirs, we
cannot cleanly automerge such a path, which was inconsistent.
Move the warning code from ll_xdl_merge() to ll_binary_merge(), and
issue the message only when we cannot cleanly automerge.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'll-merge.c')
-rw-r--r-- | ll-merge.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/ll-merge.c b/ll-merge.c index 8535e2d4a5..307315b788 100644 --- a/ll-merge.c +++ b/ll-merge.c @@ -35,7 +35,7 @@ struct ll_merge_driver { */ static int ll_binary_merge(const struct ll_merge_driver *drv_unused, mmbuffer_t *result, - const char *path_unused, + const char *path, mmfile_t *orig, const char *orig_name, mmfile_t *src1, const char *name1, mmfile_t *src2, const char *name2, @@ -53,6 +53,9 @@ static int ll_binary_merge(const struct ll_merge_driver *drv_unused, } else { switch (opts->variant) { default: + warning("Cannot merge binary files: %s (%s vs. %s)\n", + path, name1, name2); + /* fallthru */ case XDL_MERGE_FAVOR_OURS: stolen = src1; break; @@ -88,8 +91,6 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused, if (buffer_is_binary(orig->ptr, orig->size) || buffer_is_binary(src1->ptr, src1->size) || buffer_is_binary(src2->ptr, src2->size)) { - warning("Cannot merge binary files: %s (%s vs. %s)\n", - path, name1, name2); return ll_binary_merge(drv_unused, result, path, orig, orig_name, |