git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/16] Add label for common ancestor to conflictstyle=diff3
@ 2010-03-17 11:36 Jonathan Nieder
  2010-03-17 11:46 ` [PATCH 01/16] xdl_merge(): add optional ancestor label to diff3-style output Jonathan Nieder
                   ` (15 more replies)
  0 siblings, 16 replies; 23+ messages in thread
From: Jonathan Nieder @ 2010-03-17 11:36 UTC (permalink / raw)
  To: git; +Cc: Stefan Monnier

Hi all,

This is a more polished version of a series I sent a couple of days
ago [1].  Thanks to Junio for some helpful advice.

The purpose: When outputting diff3-style conflict hunks, this patch
series adds a label for the common ancestor (like diff3 -m would):

 <<<<<<< ours
 Text from the current branch
 ||||||| base
 Text from the merge base
 =======
 Text from the remote branch
 >>>>>>> theirs

Apparently, without this label, smerge-mode.el found in emacs 22 and
later has trouble parsing the conflict hunks created by git with
merge.conflictstyle=diff3.  More importantly, humans can sometimes use a
reminder of what the ancestor represents, especially in cases like
cherry-pick and revert.

As before, the bad news is that sometimes the labels for the ancestor
are kind of pointless, as in “merged common ancestors” for
merge-recursive.  I am not planning to improve this.  I’d be thrilled if
someone changes it to something like “merge of ac76d, 8d7ca9, and
81873”.

The good news is a couple of new tests thrown in.  All the other changes
I can remember are detailed in the comments after each patch (probably
missing some, since I haven’t started using git notes for this).

I think the series is ready to receive wider exposure.  Please let me
know if you run into any problems when trying it out.  I would also be
glad to hear thoughts about the details of its behavior and
implementation.

The series is based against master.  There are a few small conflicts
with next, but nothing major; I’ll point out the few that I remember
as I go.

Enjoy,
Jonathan Nieder (16):
  xdl_merge(): add optional ancestor label to diff3-style output
  xdl_merge(): move file1 and file2 labels to xmparam structure
  merge-file --diff3: add a label for ancestor
  ll_merge(): add ancestor label parameter for diff3-style output
  checkout --conflict=diff3: add a label for ancestor
  merge_file(): add comment explaining behavior wrt conflict style
  merge_trees(): add ancestor label parameter for diff3-style output
  tests: document format of conflicts from checkout -m
  checkout -m --conflict=diff3: add a label for ancestor
  tests: document cherry-pick behavior in face of conflicts
  revert_or_cherry_pick(): get oneline_body from get_oneline()
  compat: add mempcpy()
  revert: simplify get_oneline() using mempcpy
  revert: clarify label on conflict hunks
  cherry-pick: add a label for ancestor
  merge-recursive: add a label for ancestor

 builtin/checkout.c              |    3 +-
 builtin/merge-file.c            |    7 +-
 builtin/revert.c                |   33 ++++---
 git-compat-util.h               |    9 ++
 ll-merge.c                      |   28 +++---
 ll-merge.h                      |    2 +-
 merge-file.c                    |    8 ++-
 merge-recursive.c               |   12 ++-
 merge-recursive.h               |    1 +
 rerere.c                        |    4 +-
 t/t3507-cherry-pick-conflict.sh |  198 +++++++++++++++++++++++++++++++++++++++
 t/t6023-merge-file.sh           |    2 +-
 t/t7201-co.sh                   |   69 ++++++++++++-
 xdiff/xdiff.h                   |    6 +-
 xdiff/xmerge.c                  |   29 ++++--
 15 files changed, 358 insertions(+), 53 deletions(-)
 create mode 100644 t/t3507-cherry-pick-conflict.sh

[1] http://thread.gmane.org/gmane.linux.debian.devel.bugs.general/680778/focus=142176

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2010-03-20 22:46 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-17 11:36 [PATCH v2 0/16] Add label for common ancestor to conflictstyle=diff3 Jonathan Nieder
2010-03-17 11:46 ` [PATCH 01/16] xdl_merge(): add optional ancestor label to diff3-style output Jonathan Nieder
2010-03-17 14:22   ` Bert Wesarg
2010-03-20 22:47     ` Jonathan Nieder
2010-03-17 11:53 ` [PATCH 02/16] xdl_merge(): move file1 and file2 labels to xmparam structure Jonathan Nieder
2010-03-17 11:57 ` [PATCH 03/16] merge-file --diff3: add a label for ancestor Jonathan Nieder
2010-03-17 12:03 ` [PATCH 04/16] ll_merge(): add ancestor label parameter for diff3-style output Jonathan Nieder
2010-03-17 12:04 ` [PATCH 05/16] checkout --conflict=diff3: add a label for ancestor Jonathan Nieder
2010-03-17 12:05 ` [PATCH 06/16] merge_file(): add comment explaining behavior wrt conflict style Jonathan Nieder
2010-03-17 12:08 ` [PATCH 07/16] merge_trees(): add ancestor label parameter for diff3-style output Jonathan Nieder
2010-03-17 12:09 ` [PATCH 08/16] tests: document format of conflicts from checkout -m Jonathan Nieder
2010-03-17 12:13 ` [PATCH 09/16] checkout -m --conflict=diff3: add a label for ancestor Jonathan Nieder
2010-03-17 12:13 ` [PATCH 10/16] tests: document cherry-pick behavior in face of conflicts Jonathan Nieder
2010-03-17 12:15 ` [PATCH 11/16] revert_or_cherry_pick(): get oneline_body from get_oneline() Jonathan Nieder
2010-03-17 20:09   ` Stephen Boyd
2010-03-18  3:16     ` Jonathan Nieder
2010-03-18  3:33       ` [PATCH 11,13,14 v2] revert: clarify label on conflict hunks Jonathan Nieder
2010-03-18  3:34       ` [PATCH 15/16 v2] cherry-pick, revert: add a label for ancestor Jonathan Nieder
2010-03-17 12:16 ` [PATCH 12/16] compat: add mempcpy() Jonathan Nieder
2010-03-17 12:17 ` [PATCH 13/16] revert: simplify get_oneline() using mempcpy Jonathan Nieder
2010-03-17 12:19 ` [PATCH 14/16] revert: clarify label on conflict hunks Jonathan Nieder
2010-03-17 12:23 ` [PATCH 15/16] cherry-pick: add a label for ancestor Jonathan Nieder
2010-03-17 12:26 ` [PATCH 16/16] merge-recursive: " Jonathan Nieder

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).