Sergey Organov <sorganov@xxxxxxxxx> writes: > Introduce the notion of default diff format for merges, and the option > "on" to select it. The default format is "separate" and can't yet > be changed, so effectively "on" is just a synonym for "separate" > for now. Add corresponding test to t4013. > > This is in preparation for introducing log.diffMerges configuration > option that will let --diff-merges=on to be configured to any > supported format. "on"---that's short-and-sweet and really nice, compared to the "default" in the previous iteration. Clever. > Signed-off-by: Sergey Organov <sorganov@xxxxxxxxx> > --- > diff-merges.c | 7 +++++++ > t/t4013-diff-various.sh | 8 ++++++++ > 2 files changed, 15 insertions(+) > > diff --git a/diff-merges.c b/diff-merges.c > index 146bb50316a6..ff227368bd46 100644 > --- a/diff-merges.c > +++ b/diff-merges.c > @@ -2,6 +2,11 @@ > > #include "revision.h" > > +typedef void (*diff_merges_setup_func_t)(struct rev_info *); > +static void set_separate(struct rev_info *revs); > + > +static diff_merges_setup_func_t set_to_default = set_separate; > + > static void suppress(struct rev_info *revs) > { > revs->separate_merges = 0; > @@ -66,6 +71,8 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg) > set_combined(revs); > else if (!strcmp(optarg, "cc") || !strcmp(optarg, "dense-combined")) > set_dense_combined(revs); > + else if (!strcmp(optarg, "on")) > + set_to_default(revs); > else > die(_("unknown value for --diff-merges: %s"), optarg); > > diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh > index 6cca8b84a6bf..26a7b4d19d4d 100755 > --- a/t/t4013-diff-various.sh > +++ b/t/t4013-diff-various.sh > @@ -452,6 +452,14 @@ diff-tree --stat --compact-summary initial mode > diff-tree -R --stat --compact-summary initial mode > EOF > > +test_expect_success 'log --diff-merges=on matches --diff-merges=separate' ' > + git log -p --diff-merges=separate master >result && > + process_diffs result >expected && > + git log -p --diff-merges=on master >result && > + process_diffs result >actual && > + test_cmp expected actual > +' > + > test_expect_success 'log -S requires an argument' ' > test_must_fail git log -S > '