@@ -21,9 +21,72 @@ This edition covers what happened during the month of December 2020.
2121### General
2222-->
2323
24- <!-- -
2524### Reviews
26- -->
25+
26+ * [[ PATCH 00/26
] git-log: implement new --diff-merge options
] ( https://lore.kernel.org/git/[email protected] / ) 27+
28+ Last November Sergey Organov sent a 26 patch long series to the
29+ mailing list. This series added a number of new modes to
30+ ` git log --diff-merges=<mode> ` .
31+
32+ Before this patch series, there would be no diff for merge commits
33+ unless one of ` -m ` , ` -c ` or ` --cc ` was given. And in case one of
34+ these options was given, then ` --diff-merges=off ` , or its
35+ ` --no-diff-merges ` synonym, could be used to remove that diff output
36+ for merge commits. This was the only possible use of
37+ ` --diff-merges=<mode> ` .
38+
39+ Sergey's patch series introduced four new modes. Three of them,
40+ "separate", "combined" and "dense-combined" do not generate new diff
41+ output. They are just synonyms of ` -m ` , ` -c ` and ` --cc `
42+ respectively.
43+
44+ The fourth new mode, called "first-parent", though allows to get the
45+ same output as ` -p --first-parent ` but "without the changes in
46+ history traversal that the ` --first-parent ` option causes".
47+
48+ Sergey's patch series also refactored some code and fixed a small
49+ issue. In a follow up email Sergey asked questions related to
50+ further possible issues related to how ` -m ` , ` -c ` and ` --cc `
51+ interact with ` --oneline ` .
52+
53+ Elijah Newren replied to Sergey's questions, and a long discussion
54+ involving Junio Hamano, the Git maintainer, started about different
55+ technical topics, especially the interactions between ` -p ` and the
56+ ` -m ` , ` -c ` and ` --cc ` options.
57+
58+ Elijah and Philip Oakley also commented on small issues in a few
59+ patches.
60+
61+ Sergey then sent a new version, that he named v1, of his patch
62+ series with 27 patches, so one more than in the original series. The
63+ changes were mostly typo and documentation fixes.
64+
65+ Elijah and Junio commented on the patch series. Elijah and Sergey
66+ discussed some new ` --remerge-diff ` and ` --remerge-diff-only `
67+ options Elijah had been working on, and how there could also be a
68+ related ` --diff-merges=remerge ` mode.
69+
70+ Junio found a few issues and suggested some renaming and test
71+ improvements.
72+
73+ Sergey sent a new v2 version of his patch series with 33 patches, so
74+ 6 more than in v1. One change compared to the previous version was
75+ that the diff output for the new --diff-merges options didn't affect
76+ non-merge commits. Another change was that short mnemonics
77+ ` --diff-merges=(1|m|c|cc) ` were provided on top of long mode
78+ names. A lot of smaller changes addressed Elijah's and Junio's
79+ reviews.
80+
81+ Elijah and Sergey then discussed further improvements especially to
82+ the documentation. Felipe Contreras and Junio sometimes also chimed
83+ in with further explanations or suggestions.
84+
85+ Sergey sent a new v3 version, with 32 patches, one less than in v2.
86+ The changes were mostly following reviewers' suggestions. Felipe
87+ commented positively on one patch, and Junio said he didn't spot
88+ anything objectionable in the series and was ok to start merging it
89+ to the next branch.
2790
2891<!-- -
2992### Support
0 commit comments