Merge branch 'mm/maint-merge-ff-error-message-fix' into maint
* mm/maint-merge-ff-error-message-fix: builtin-merge: show user-friendly error messages for fast-forward too. merge-recursive: make the error-message generation an extern function Conflicts: merge-recursive.c
This commit is contained in:
commit
5c30b8f7dd
@ -650,6 +650,7 @@ static int checkout_fast_forward(unsigned char *head, unsigned char *remote)
|
|||||||
opts.verbose_update = 1;
|
opts.verbose_update = 1;
|
||||||
opts.merge = 1;
|
opts.merge = 1;
|
||||||
opts.fn = twoway_merge;
|
opts.fn = twoway_merge;
|
||||||
|
opts.msgs = get_porcelain_error_msgs();
|
||||||
|
|
||||||
trees[nr_trees] = parse_tree_indirect(head);
|
trees[nr_trees] = parse_tree_indirect(head);
|
||||||
if (!trees[nr_trees++])
|
if (!trees[nr_trees++])
|
||||||
|
@ -171,23 +171,6 @@ static int git_merge_trees(int index_only,
|
|||||||
int rc;
|
int rc;
|
||||||
struct tree_desc t[3];
|
struct tree_desc t[3];
|
||||||
struct unpack_trees_options opts;
|
struct unpack_trees_options opts;
|
||||||
struct unpack_trees_error_msgs msgs = {
|
|
||||||
/* would_overwrite */
|
|
||||||
"Your local changes to '%s' would be overwritten by merge. Aborting.",
|
|
||||||
/* not_uptodate_file */
|
|
||||||
"Your local changes to '%s' would be overwritten by merge. Aborting.",
|
|
||||||
/* not_uptodate_dir */
|
|
||||||
"Updating '%s' would lose untracked files in it. Aborting.",
|
|
||||||
/* would_lose_untracked */
|
|
||||||
"Untracked working tree file '%s' would be %s by merge. Aborting",
|
|
||||||
/* bind_overlap -- will not happen here */
|
|
||||||
NULL,
|
|
||||||
};
|
|
||||||
if (advice_commit_before_merge) {
|
|
||||||
msgs.would_overwrite = msgs.not_uptodate_file =
|
|
||||||
"Your local changes to '%s' would be overwritten by merge. Aborting.\n"
|
|
||||||
"Please, commit your changes or stash them before you can merge.";
|
|
||||||
}
|
|
||||||
|
|
||||||
memset(&opts, 0, sizeof(opts));
|
memset(&opts, 0, sizeof(opts));
|
||||||
if (index_only)
|
if (index_only)
|
||||||
@ -199,7 +182,7 @@ static int git_merge_trees(int index_only,
|
|||||||
opts.fn = threeway_merge;
|
opts.fn = threeway_merge;
|
||||||
opts.src_index = &the_index;
|
opts.src_index = &the_index;
|
||||||
opts.dst_index = &the_index;
|
opts.dst_index = &the_index;
|
||||||
opts.msgs = msgs;
|
opts.msgs = get_porcelain_error_msgs();
|
||||||
|
|
||||||
init_tree_desc_from_tree(t+0, common);
|
init_tree_desc_from_tree(t+0, common);
|
||||||
init_tree_desc_from_tree(t+1, head);
|
init_tree_desc_from_tree(t+1, head);
|
||||||
@ -1186,6 +1169,28 @@ static int process_entry(struct merge_options *o,
|
|||||||
return clean_merge;
|
return clean_merge;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct unpack_trees_error_msgs get_porcelain_error_msgs(void)
|
||||||
|
{
|
||||||
|
struct unpack_trees_error_msgs msgs = {
|
||||||
|
/* would_overwrite */
|
||||||
|
"Your local changes to '%s' would be overwritten by merge. Aborting.",
|
||||||
|
/* not_uptodate_file */
|
||||||
|
"Your local changes to '%s' would be overwritten by merge. Aborting.",
|
||||||
|
/* not_uptodate_dir */
|
||||||
|
"Updating '%s' would lose untracked files in it. Aborting.",
|
||||||
|
/* would_lose_untracked */
|
||||||
|
"Untracked working tree file '%s' would be %s by merge. Aborting",
|
||||||
|
/* bind_overlap -- will not happen here */
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
if (advice_commit_before_merge) {
|
||||||
|
msgs.would_overwrite = msgs.not_uptodate_file =
|
||||||
|
"Your local changes to '%s' would be overwritten by merge. Aborting.\n"
|
||||||
|
"Please, commit your changes or stash them before you can merge.";
|
||||||
|
}
|
||||||
|
return msgs;
|
||||||
|
}
|
||||||
|
|
||||||
int merge_trees(struct merge_options *o,
|
int merge_trees(struct merge_options *o,
|
||||||
struct tree *head,
|
struct tree *head,
|
||||||
struct tree *merge,
|
struct tree *merge,
|
||||||
|
@ -17,6 +17,9 @@ struct merge_options {
|
|||||||
struct string_list current_directory_set;
|
struct string_list current_directory_set;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Return a list of user-friendly error messages to be used by merge */
|
||||||
|
struct unpack_trees_error_msgs get_porcelain_error_msgs(void);
|
||||||
|
|
||||||
/* merge_trees() but with recursive ancestor consolidation */
|
/* merge_trees() but with recursive ancestor consolidation */
|
||||||
int merge_recursive(struct merge_options *o,
|
int merge_recursive(struct merge_options *o,
|
||||||
struct commit *h1,
|
struct commit *h1,
|
||||||
|
Loading…
Reference in New Issue
Block a user