git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 10/10] merge-recursive: add a label for ancestor

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Mar 15, 2010, 08:07 UTC
Message-ID
<20100315080703.GJ8824@progeny.tock>
In-Reply-To
<20100315074748.GA28827@progeny.tock>

git merge-recursive (and hence git merge) will present conflict hunks in output something like what ‘diff3 -m’ produces if the merge.conflictstyle configuration option is set to diff3.

Unfortunately, some tools reportedly cannot parse the conflict hunks because of a small difference from diff3: diff3 -m includes a label for the merge base on the ||||||| line. Humans unfamiliar with the format would do a better job with a label, too. Mark the start of the text from the merge bases with the heading "||||||| merged common ancestors".

It would be nicer to use a more informative label, and that might happen in the future.

git rerere does not have trouble parsing this output, since instead of looking for a newline, it looks for whitespace after the ||||||| marker. No other code in git tries to parse conflict hunks.

Reported-by: Stefan Monnier <monnier@iro.umontreal.ca>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
I would be interested to know which merge tool chokes on |||||||. ;)
As it is, since I haven’t experienced the mechanical misbehavior, I
am targetting humans.
That’s the end of the series.  Thanks for reading.

Good night, Jonathan

 merge-recursive.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c
index 017cafd..917397c 100644
--- a/merge-recursive.c
+++ b/merge-recursive.c
@@ -1347,6 +1347,7 @@ int merge_recursive(struct merge_options *o,
 	if (!o->call_depth)
 		read_cache();
 
+	o->ancestor = "merged common ancestors";
 	clean = merge_trees(o, h1->tree, h2->tree, merged_common_ancestors->tree,
 			    &mrtree);
 
-- 
1.7.0
Previous: Jonathan NiederNext: Junio C Hamano
Message 21 of 23 in “Re: git-core: conflictstyle=diff3 doesn't actually use diff3 compatible format”
  1. Jonathan NiederMar 5, 2010
  2. Junio C HamanoMar 5, 2010
  3. Bert WesargMar 6, 2010
  4. Junio C HamanoMar 6, 2010
  5. Jonathan NiederMar 8, 2010
  6. 0/10 Add label for common ancestor to conflictstyle=diff3Jonathan Nieder, Mar 15, 2010
  7. 01/10 xdl_merge(): add optional ancestor label to diff3-style outputJonathan Nieder, Mar 15, 2010
  8. Junio C HamanoMar 15, 2010
  9. Jonathan NiederMar 15, 2010
  10. Junio C HamanoMar 15, 2010
  11. 02/10 merge-file --diff3: add a label for ancestorJonathan Nieder, Mar 15, 2010
  12. 03/10 ll_merge(): add ancestor label parameter for diff3-style outputJonathan Nieder, Mar 15, 2010
  13. 04/10 checkout --conflict=diff3: add a label for ancestorJonathan Nieder, Mar 15, 2010
  14. Junio C HamanoMar 15, 2010
  15. Jonathan NiederMar 15, 2010
  16. 05/10 merge_file(): add comment explaining behavior wrt conflict styleJonathan Nieder, Mar 15, 2010
  17. 06/10 merge_trees(): add ancestor label parameter for diff3-style outputJonathan Nieder, Mar 15, 2010
  18. 07/10 tests: document format of conflicts from checkout -mJonathan Nieder, Mar 15, 2010
  19. 08/10 checkout -m --conflict=diff3: add a label for ancestorJonathan Nieder, Mar 15, 2010
  20. 09/10 cherry-pick: add a label for ancestorJonathan Nieder, Mar 15, 2010
  21. 10/10 merge-recursive: add a label for ancestorJonathan Nieder, Mar 15, 2010
  22. Junio C HamanoMar 15, 2010
  23. Stefan MonnierMar 15, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.