Skip to content

Commit

Permalink
merge-recursive: make the error-message generation an extern function
Browse files Browse the repository at this point in the history
The construction of the struct unpack_trees_error_msgs was done within
git_merge_trees(), which prevented using the same messages easily from
another function.

[jc: backported for 1.6.5 maint before advice_commit_before_merge]

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Matthieu Moy authored and Junio C Hamano committed Nov 30, 2009
1 parent 78d553b commit 264b774
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 13 deletions.
31 changes: 18 additions & 13 deletions merge-recursive.c
Original file line number Diff line number Diff line change
Expand Up @@ -170,18 +170,6 @@ static int git_merge_trees(int index_only,
int rc;
struct tree_desc t[3];
struct unpack_trees_options opts;
static const 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,
};

memset(&opts, 0, sizeof(opts));
if (index_only)
Expand All @@ -193,7 +181,7 @@ static int git_merge_trees(int index_only,
opts.fn = threeway_merge;
opts.src_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+1, head);
Expand Down Expand Up @@ -1180,6 +1168,23 @@ static int process_entry(struct merge_options *o,
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,
};
return msgs;
}

int merge_trees(struct merge_options *o,
struct tree *head,
struct tree *merge,
Expand Down
3 changes: 3 additions & 0 deletions merge-recursive.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ struct merge_options {
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 */
int merge_recursive(struct merge_options *o,
struct commit *h1,
Expand Down

0 comments on commit 264b774

Please sign in to comment.