summaryrefslogtreecommitdiff
path: root/Documentation/git-log.txt
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2020-07-29 16:11:16 -0400
committerJunio C Hamano <gitster@pobox.com>2020-07-29 13:44:03 -0700
commit6f2e02aeb004a2ecd6aec1732f4abeaf88fba4b9 (patch)
treea43f9e98fe36e3ec7c758797a294eab833317e97 /Documentation/git-log.txt
parent9ab89a2439064720cc790c4477b8e981832c43f5 (diff)
downloadgit-6f2e02aeb004a2ecd6aec1732f4abeaf88fba4b9.tar.gz
doc/git-log: move "Diff Formatting" from rev-list-options
Our rev-list-options.txt include has a "Diff Formatting" section, but it is ifndef'd out for all manpages except git-log. And a few bits of the text are rather out of date. We say "some of these options are specific to git-rev-list". That's obviously silly since we (even before this patch) show the content only for git-log. But moreover, it's not true; each of the listed options is meaningful for other diff commands. We also say "...however other diff options may be given. See git-diff-files for more options." But there's no need to do so; git-log already has a "Common Diff Options" section which includes diff-options.txt. So let's move these options over to git-log and put them with the other diff options, giving a single "diff" section for the git-log documentation. We'll call it "Diff Formatting" but use the all-caps top-level header to match its sibling sections. And we'll rewrite the section intro to remove the useless bits and give a more generic overview of the section which can be later extended. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/git-log.txt')
-rw-r--r--Documentation/git-log.txt42
1 files changed, 40 insertions, 2 deletions
diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt
index 20e6d21a74..fb3998d8e0 100644
--- a/Documentation/git-log.txt
+++ b/Documentation/git-log.txt
@@ -111,8 +111,46 @@ include::rev-list-options.txt[]
include::pretty-formats.txt[]
-COMMON DIFF OPTIONS
--------------------
+DIFF FORMATTING
+---------------
+
+By default, `git log` does not generate any diff output. The options
+below can be used to show the changes made by each commit.
+
+-c::
+ With this option, diff output for a merge commit
+ shows the differences from each of the parents to the merge result
+ simultaneously instead of showing pairwise diff between a parent
+ and the result one at a time. Furthermore, it lists only files
+ which were modified from all parents.
+
+--cc::
+ This flag implies the `-c` option and further compresses the
+ patch output by omitting uninteresting hunks whose contents in
+ the parents have only two variants and the merge result picks
+ one of them without modification.
+
+--combined-all-paths::
+ This flag causes combined diffs (used for merge commits) to
+ list the name of the file from all parents. It thus only has
+ effect when -c or --cc are specified, and is likely only
+ useful if filename changes are detected (i.e. when either
+ rename or copy detection have been requested).
+
+-m::
+--diff-merges::
+ This flag makes the merge commits show the full diff like
+ regular commits; for each merge parent, a separate log entry
+ and diff is generated. An exception is that only diff against
+ the first parent is shown when `--first-parent` option is given;
+ in that case, the output represents the changes the merge
+ brought _into_ the then-current branch.
+
+-r::
+ Show recursive diffs.
+
+-t::
+ Show the tree objects in the diff output. This implies `-r`.
:git-log: 1
include::diff-options.txt[]