Skip to content

Commit

Permalink
merge options: add a conflict style member
Browse files Browse the repository at this point in the history
Add a conflict_style member to `struct merge_options` and `struct
ll_merge_options` to allow callers to override the default conflict
style. This will be used in the next commit.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
phillipwood authored and gitster committed Mar 14, 2024
1 parent 412aff7 commit 135cc71
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 2 deletions.
4 changes: 3 additions & 1 deletion merge-ll.c
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,9 @@ static enum ll_merge_result ll_xdl_merge(const struct ll_merge_driver *drv_unuse
xmp.level = XDL_MERGE_ZEALOUS;
xmp.favor = opts->variant;
xmp.xpp.flags = opts->xdl_opts;
if (git_xmerge_style >= 0)
if (opts->conflict_style >= 0)
xmp.style = opts->conflict_style;
else if (git_xmerge_style >= 0)
xmp.style = git_xmerge_style;
if (marker_size > 0)
xmp.marker_size = marker_size;
Expand Down
5 changes: 4 additions & 1 deletion merge-ll.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,14 @@ struct ll_merge_options {
*/
unsigned extra_marker_size;

/* Override the global conflict style. */
int conflict_style;

/* Extra xpparam_t flags as defined in xdiff/xdiff.h. */
long xdl_opts;
};

#define LL_MERGE_OPTIONS_INIT {0}
#define LL_MERGE_OPTIONS_INIT { .conflict_style = -1 }

enum ll_merge_result {
LL_MERGE_ERROR = -1,
Expand Down
1 change: 1 addition & 0 deletions merge-ort.c
Original file line number Diff line number Diff line change
Expand Up @@ -1966,6 +1966,7 @@ static int merge_3way(struct merge_options *opt,
ll_opts.renormalize = opt->renormalize;
ll_opts.extra_marker_size = extra_marker_size;
ll_opts.xdl_opts = opt->xdl_opts;
ll_opts.conflict_style = opt->conflict_style;

if (opt->priv->call_depth) {
ll_opts.virtual_ancestor = 1;
Expand Down
3 changes: 3 additions & 0 deletions merge-recursive.c
Original file line number Diff line number Diff line change
Expand Up @@ -1054,6 +1054,7 @@ static int merge_3way(struct merge_options *opt,
ll_opts.renormalize = opt->renormalize;
ll_opts.extra_marker_size = extra_marker_size;
ll_opts.xdl_opts = opt->xdl_opts;
ll_opts.conflict_style = opt->conflict_style;

if (opt->priv->call_depth) {
ll_opts.virtual_ancestor = 1;
Expand Down Expand Up @@ -3899,6 +3900,8 @@ void init_merge_options(struct merge_options *opt,

opt->renormalize = 0;

opt->conflict_style = -1;

merge_recursive_config(opt);
merge_verbosity = getenv("GIT_MERGE_VERBOSITY");
if (merge_verbosity)
Expand Down
1 change: 1 addition & 0 deletions merge-recursive.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ struct merge_options {

/* xdiff-related options (patience, ignore whitespace, ours/theirs) */
long xdl_opts;
int conflict_style;
enum {
MERGE_VARIANT_NORMAL = 0,
MERGE_VARIANT_OURS,
Expand Down

0 comments on commit 135cc71

Please sign in to comment.