git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Subject: [PATCH 08/12] git-merge-recursive: learn to honor merge.conflictstyle
Date: Fri, 29 Aug 2008 17:42:39 -0700	[thread overview]
Message-ID: <1220056963-2352-9-git-send-email-gitster@pobox.com> (raw)
In-Reply-To: <1220056963-2352-8-git-send-email-gitster@pobox.com>

This teaches the low-level ll_xdl_merge() routine to honor
merge.conflictstyle configuration variable, so that merge-recursive
strategy can show the conflicts in the style of user's choice.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 builtin-merge-recursive.c |    2 +-
 ll-merge.c                |   16 ++++++++++++----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/builtin-merge-recursive.c b/builtin-merge-recursive.c
index dfb363e..f3b6ede 100644
--- a/builtin-merge-recursive.c
+++ b/builtin-merge-recursive.c
@@ -1348,7 +1348,7 @@ static int merge_config(const char *var, const char *value, void *cb)
 		merge_rename_limit = git_config_int(var, value);
 		return 0;
 	}
-	return git_default_config(var, value, cb);
+	return git_xmerge_config(var, value, cb);
 }
 
 int cmd_merge_recursive(int argc, const char **argv, const char *prefix)
diff --git a/ll-merge.c b/ll-merge.c
index 9837c84..4a71614 100644
--- a/ll-merge.c
+++ b/ll-merge.c
@@ -63,6 +63,7 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,
 			int virtual_ancestor)
 {
 	xpparam_t xpp;
+	int style = 0;
 
 	if (buffer_is_binary(orig->ptr, orig->size) ||
 	    buffer_is_binary(src1->ptr, src1->size) ||
@@ -77,10 +78,12 @@ static int ll_xdl_merge(const struct ll_merge_driver *drv_unused,
 	}
 
 	memset(&xpp, 0, sizeof(xpp));
+	if (git_xmerge_style >= 0)
+		style = git_xmerge_style;
 	return xdl_merge(orig,
 			 src1, name1,
 			 src2, name2,
-			 &xpp, XDL_MERGE_ZEALOUS,
+			 &xpp, XDL_MERGE_ZEALOUS | style,
 			 result);
 }
 
@@ -95,10 +98,15 @@ static int ll_union_merge(const struct ll_merge_driver *drv_unused,
 	char *src, *dst;
 	long size;
 	const int marker_size = 7;
-
-	int status = ll_xdl_merge(drv_unused, result, path_unused,
-				  orig, src1, NULL, src2, NULL,
-				  virtual_ancestor);
+	int status, saved_style;
+
+	/* We have to force the RCS "merge" style */
+	saved_style = git_xmerge_style;
+	git_xmerge_style = 0;
+	status = ll_xdl_merge(drv_unused, result, path_unused,
+			      orig, src1, NULL, src2, NULL,
+			      virtual_ancestor);
+	git_xmerge_style = saved_style;
 	if (status <= 0)
 		return status;
 	size = result->size;
-- 
1.6.0.1.149.ga4c44

  reply	other threads:[~2008-08-30  0:44 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-30  0:42 [PATCH 00/12] Towards a better merge resolution support Junio C Hamano
2008-08-30  0:42 ` [PATCH 01/12] xdl_fill_merge_buffer(): separate out a too deeply nested function Junio C Hamano
2008-08-30  0:42   ` [PATCH 02/12] xdiff-merge: optionally show conflicts in "diff3 -m" style Junio C Hamano
2008-08-30  0:42     ` [PATCH 03/12] xmerge.c: minimum readability fixups Junio C Hamano
2008-08-30  0:42       ` [PATCH 04/12] xmerge.c: "diff3 -m" style clips merge reduction level to EAGER or less Junio C Hamano
2008-08-30  0:42         ` [PATCH 05/12] rerere.c: use symbolic constants to keep track of parsing states Junio C Hamano
2008-08-30  0:42           ` [PATCH 06/12] rerere: understand "diff3 -m" style conflicts with the original Junio C Hamano
2008-08-30  0:42             ` [PATCH 07/12] merge.conflictstyle: choose between "merge" and "diff3 -m" styles Junio C Hamano
2008-08-30  0:42               ` Junio C Hamano [this message]
2008-08-30  0:42                 ` [PATCH 09/12] checkout: do not check out unmerged higher stages randomly Junio C Hamano
2008-08-30  0:42                   ` [PATCH 10/12] checkout: allow ignoring unmerged paths when checking out of the index Junio C Hamano
2008-08-30  0:42                     ` [PATCH 11/12] checkout --ours/--theirs Junio C Hamano
2008-08-30  0:42                       ` [PATCH 12/12] checkout -m: recreate merge when checking out of unmerged index Junio C Hamano
2008-08-30  9:42               ` [PATCH 07/12] merge.conflictstyle: choose between "merge" and "diff3 -m" styles Johannes Schindelin
2008-08-30  9:34         ` [PATCH 04/12] xmerge.c: "diff3 -m" style clips merge reduction level to EAGER or less Johannes Schindelin
2008-08-30  9:31       ` [PATCH 03/12] xmerge.c: minimum readability fixups Johannes Schindelin
2008-08-30 15:42         ` Junio C Hamano
2008-08-30  9:29     ` [PATCH 02/12] xdiff-merge: optionally show conflicts in "diff3 -m" style Johannes Schindelin
2008-08-30  9:14   ` [PATCH 01/12] xdl_fill_merge_buffer(): separate out a too deeply nested function Johannes Schindelin
2008-09-01  9:39 ` [PATCH 00/12] Towards a better merge resolution support Alex Riesen
2008-09-01  9:44 ` Alex Riesen
2008-09-01  9:50   ` Abhijit Menon-Sen
2008-09-01 12:20     ` Thomas Rast
2008-09-01 10:38   ` Junio C Hamano
2008-09-01 11:34     ` Alex Riesen
2008-09-01 17:26       ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1220056963-2352-9-git-send-email-gitster@pobox.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).