From: Jonathan Nieder <jrnieder@gmail.com>
To: git@vger.kernel.org
Cc: Stefan Monnier <monnier@iro.umontreal.ca>
Subject: [PATCH v2 0/16] Add label for common ancestor to conflictstyle=diff3
Date: Wed, 17 Mar 2010 06:36:55 -0500 [thread overview]
Message-ID: <20100317113655.GA25470@progeny.tock> (raw)
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
next reply other threads:[~2010-03-17 11:36 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-17 11:36 Jonathan Nieder [this message]
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
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=20100317113655.GA25470@progeny.tock \
--to=jrnieder@gmail.com \
--cc=git@vger.kernel.org \
--cc=monnier@iro.umontreal.ca \
/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).