Skip to content

Commit b5ffa9e

Browse files
sorganovgitster
authored andcommitted
doc/git-log: describe new --diff-merges options
Describe all the new --diff-merges options in the git-log.txt and adopt description of originals accordingly. Signed-off-by: Sergey Organov <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 388091f commit b5ffa9e

File tree

1 file changed

+52
-35
lines changed

1 file changed

+52
-35
lines changed

Documentation/git-log.txt

Lines changed: 52 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -120,45 +120,62 @@ DIFF FORMATTING
120120
By default, `git log` does not generate any diff output. The options
121121
below can be used to show the changes made by each commit.
122122

123-
Note that unless one of `-c`, `--cc`, or `-m` is given, merge commits
124-
will never show a diff, even if a diff format like `--patch` is
125-
selected, nor will they match search options like `-S`. The exception is
126-
when `--first-parent` is in use, in which merges are treated like normal
127-
single-parent commits (this can be overridden by providing a
128-
combined-diff option or with `--no-diff-merges`).
129-
130-
-c::
131-
With this option, diff output for a merge commit
132-
shows the differences from each of the parents to the merge result
133-
simultaneously instead of showing pairwise diff between a parent
134-
and the result one at a time. Furthermore, it lists only files
135-
which were modified from all parents.
136-
137-
--cc::
138-
This flag implies the `-c` option and further compresses the
139-
patch output by omitting uninteresting hunks whose contents in
140-
the parents have only two variants and the merge result picks
141-
one of them without modification.
123+
Note that unless one of `--diff-merges` variants (including short
124+
`-m`, `-c`, and `--cc` options) is explicitly given, merge commits
125+
will not show a diff, even if a diff format like `--patch` is
126+
selected, nor will they match search options like `-S`. The exception
127+
is when `--first-parent` is in use, in which case `first-parent` is
128+
the default format.
129+
130+
--diff-merges=(off|none|first-parent|1|separate|m|combined|c|dense-combined|cc)::
131+
--no-diff-merges::
132+
Specify diff format to be used for merge commits. Default is
133+
`off` unless `--first-parent` is in use, in which case
134+
`first-parent` is the default.
135+
+
136+
--diff-merges=(off|none):::
137+
--no-diff-merges:::
138+
Disable output of diffs for merge commits. Useful to override
139+
implied value.
140+
+
141+
--diff-merges=first-parent:::
142+
--diff-merges=1:::
143+
This option makes merge commits show the full diff with
144+
respect to the first parent only.
145+
+
146+
--diff-merges=separate:::
147+
--diff-merges=m:::
148+
-m:::
149+
This makes merge commits show the full diff with respect to
150+
each of the parents. Separate log entry and diff is generated
151+
for each parent. `-m` doesn't produce any output without `-p`.
152+
+
153+
--diff-merges=combined:::
154+
--diff-merges=c:::
155+
-c:::
156+
With this option, diff output for a merge commit shows the
157+
differences from each of the parents to the merge result
158+
simultaneously instead of showing pairwise diff between a
159+
parent and the result one at a time. Furthermore, it lists
160+
only files which were modified from all parents. `-c` implies
161+
`-p`.
162+
+
163+
--diff-merges=dense-combined:::
164+
--diff-merges=cc:::
165+
--cc:::
166+
With this option the output produced by
167+
`--diff-merges=combined` is further compressed by omitting
168+
uninteresting hunks whose contents in the parents have only
169+
two variants and the merge result picks one of them without
170+
modification. `--cc` implies `-p`.
142171

143172
--combined-all-paths::
144173
This flag causes combined diffs (used for merge commits) to
145174
list the name of the file from all parents. It thus only has
146-
effect when -c or --cc are specified, and is likely only
147-
useful if filename changes are detected (i.e. when either
148-
rename or copy detection have been requested).
149-
150-
-m::
151-
This flag makes the merge commits show the full diff like
152-
regular commits; for each merge parent, a separate log entry
153-
and diff is generated. An exception is that only diff against
154-
the first parent is shown when `--first-parent` option is given;
155-
in that case, the output represents the changes the merge
156-
brought _into_ the then-current branch.
157-
158-
--diff-merges=off::
159-
--no-diff-merges::
160-
Disable output of diffs for merge commits (default). Useful to
161-
override `-m`, `-c`, or `--cc`.
175+
effect when `--diff-merges=[dense-]combined` is in use, and
176+
is likely only useful if filename changes are detected (i.e.
177+
when either rename or copy detection have been requested).
178+
162179

163180
:git-log: 1
164181
include::diff-options.txt[]

0 commit comments

Comments
 (0)