understand Diff Formatting --cc flag?
From: Andy Zhang <hidden>
Date: 2022-03-16 11:34:52
understand Diff Formatting --cc flag?
hi,
It is really too hard to understand Diff Formatting --cc flag.
It is hard to understand"...hunks whose contents in the parents have
only two variants..".
My question is:
1)what does "variant" mean here?
2)what about all the other cases? 0 variants, 1 variants, and 3
variants and even more?
3)Can I understand "--cc" as simply as: "--cc lists only hunks
which were modified from all parents."
Any comments, hinits are welcome! Thank you in advance!
//---------------------------------------------------------------------
Here is the help from the command: git help log
Diff Formatting
Listed below are options that control the formatting of diff
output. Some of them are specific to git-rev-list(1), however other
diff options may be given. See git-diff-files(1) for more options.
-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.
-m
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.