From: Junio C Hamano <gitster@pobox.com>
To: "Dirk Süsserott" <newsletter@dirk.my1.cc>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: Meaning of double + and - in Gitk's diff pane
Date: Mon, 21 Mar 2011 13:40:24 -0700 [thread overview]
Message-ID: <7vwrjsnr5z.fsf@alter.siamese.dyndns.org> (raw)
In-Reply-To: <4D87AD9D.7080501@dirk.my1.cc> ("Dirk Süsserott"'s message of "Mon, 21 Mar 2011 20:57:17 +0100")
Dirk Süsserott <newsletter@dirk.my1.cc> writes:
> Am 21.03.2011 20:49 schrieb Junio C Hamano:
>>>
>>> Junio, thanks. When I've found the time, I'll probably condense Linus'
>>> explanations and submit a documentation patch. It's not explained
>>> in the actual git docs, right?
>>
>> How about checking "git diff"? The same conclusion should be in there, as
>> I wrote the implementation, docs and the messages there.
>>
> Uhh, sorry, I missed that. That was actually what I was searching for.
Hmm... re-reading "git diff --help" and looking at the section on combined
diff, I notice that we talk about how to understand its output, but we
don't say under what rule the --cc option condenses what would be produced
with the -c option. Perhaps we would need a patch after all at the end of
Documentation/diff-generate-patch.txt file.
Here is a quick attempt.
Documentation/diff-generate-patch.txt | 18 ++++++++++++++++++
1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/Documentation/diff-generate-patch.txt b/Documentation/diff-generate-patch.txt
index c57460c..20a603d 100644
--- a/Documentation/diff-generate-patch.txt
+++ b/Documentation/diff-generate-patch.txt
@@ -183,3 +183,21 @@ parents). When shown by `git diff-files -c`, it compares the
two unresolved merge parents with the working tree file
(i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka
"their version").
+
+The "combined" format (`-c` option) shows the diff to the result (i.e. the
+result of the merge, or the file in the working tree during a conflict
+resolution) from two or more originals (i.e. parents of the merge or
+branches being merged) combined, but it often shows many trivial changes
+that the result takes the change from a single original verbatim. The
+"dense combined" format (`--cc` option) removes such hunks with only
+"trivial" changes. A hunk that has only two versions (or less) in the
+original (in a usual two-parent merge, this always is the case, simply
+because there are only two originals) and whose result matches exactly one
+of the originals, is considered "trivial" and is omitted from the output
+in the "dense combined" format. In the previous illustration of a
+combined diff on `describe.c` file, there are two originals, one that had
+the describe function with a single `char *arg` parameter, and the other
+with two parameters, but the result matches neither of them, hence it is
+not "trivial" and the hunk appears in the output.
+
+
prev parent reply other threads:[~2011-03-21 20:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-21 18:38 Meaning of double + and - in Gitk's diff pane Dirk Süsserott
2011-03-21 19:37 ` Junio C Hamano
2011-03-21 19:45 ` Dirk Süsserott
2011-03-21 19:49 ` Junio C Hamano
2011-03-21 19:57 ` Dirk Süsserott
2011-03-21 20:40 ` Junio C Hamano [this message]
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=7vwrjsnr5z.fsf@alter.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=newsletter@dirk.my1.cc \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.