mirror of
https://github.com/git/git.git
synced 2026-01-10 01:56:42 +00:00
ll-merge: make callers responsible for showing warnings
Since some callers may want to send warning messages to somewhere other than stdout/stderr, stop printing "warning: Cannot merge binary files" from ll-merge and instead modify the return status of ll_merge() to indicate when a merge of binary files has occurred. Message printing probably does not belong in a "low-level merge" anyway. This commit continues printing the message as-is, just from the callers instead of within ll_merge(). Future changes will start handling the message differently in the merge-ort codepath. There was one special case here: the callers in rerere.c do NOT check for and print such a message; since those code paths explicitly skip over binary files, there is no reason to check for a return status of LL_MERGE_BINARY_CONFLICT or print the related message. Note that my methodology included first modifying ll_merge() to return a struct, so that the compiler would catch all the callers for me and ensure I had modified all of them. After modifying all of them, I then changed the struct to an enum. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
7b90ab467a
commit
35f6967161
@@ -1044,7 +1044,7 @@ static int merge_3way(struct merge_options *opt,
|
||||
mmfile_t orig, src1, src2;
|
||||
struct ll_merge_options ll_opts = {0};
|
||||
char *base, *name1, *name2;
|
||||
int merge_status;
|
||||
enum ll_merge_result merge_status;
|
||||
|
||||
ll_opts.renormalize = opt->renormalize;
|
||||
ll_opts.extra_marker_size = extra_marker_size;
|
||||
@@ -1090,6 +1090,9 @@ static int merge_3way(struct merge_options *opt,
|
||||
merge_status = ll_merge(result_buf, a->path, &orig, base,
|
||||
&src1, name1, &src2, name2,
|
||||
opt->repo->index, &ll_opts);
|
||||
if (merge_status == LL_MERGE_BINARY_CONFLICT)
|
||||
warning("Cannot merge binary files: %s (%s vs. %s)",
|
||||
a->path, name1, name2);
|
||||
|
||||
free(base);
|
||||
free(name1);
|
||||
|
||||
Reference in New Issue
Block a user