Re: [PATCH v2 1/5] diff-merges: introduce --diff-merges=on
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 13, 2021, 23:18 UTC
- Message-ID
- <xmqqfsztkc3b.fsf@gitster.g>
- In-Reply-To
- <20210413114118.25693-2-sorganov@gmail.com>
Sergey Organov <sorganov@gmail.com> writes:
Show 8 quoted lines
> 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.
Show 50 quoted lines
> Signed-off-by: Sergey Organov <sorganov@gmail.com>
> ---
> 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
> '