From b75e410797d4576e266d056ece16acf07e4b0116 Mon Sep 17 00:00:00 2001 From: Sergey Organov Date: Tue, 4 Aug 2020 16:48:27 +0300 Subject: [PATCH RFC] revision: change "--diff-merges" option to require parameter Make --diff-merges require parameter having one of the following values: off, all, c, cc, combined-all-paths that are equivalents of passing the following separate options, respectively: --no-diff-merges, -m, -c, -cc, --combined-all-paths that, except --no-diff-merges, could be deprecated later. This gives us single option that entirely defines how merge commits are to be represented. This patch is a preparation for supporting --diff-merges=, where is parent number to provide diff against, that adds new essential functionality and therefore is a separate change. Signed-off-by: Sergey Organov --- revision.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/revision.c b/revision.c index 669bc856694f..dcdff59bc36a 100644 --- a/revision.c +++ b/revision.c @@ -2323,10 +2323,31 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg revs->diff = 1; revs->diffopt.flags.recursive = 1; revs->diffopt.flags.tree_in_recursive = 1; - } else if (!strcmp(arg, "-m") || !strcmp(arg, "--diff-merges")) { + } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { revs->ignore_merges = 0; + if (!strcmp(optarg, "off")) { + revs->ignore_merges = 1; + } else if (!strcmp(optarg, "all")) { + revs->diff = 0; + } else if (!strcmp(optarg, "c")) { + revs->diff = 1; + revs->dense_combined_merges = 0; + revs->combine_merges = 1; + } else if (!strcmp(optarg, "cc")) { + revs->diff = 1; + revs->dense_combined_merges = 1; + revs->combine_merges = 1; + } else if (!strcmp(optarg, "combined-all-paths")) { + revs->diff = 1; + revs->combined_all_paths = 1; + } else { + die("--diff-merges: unknown value '%s'.", optarg); + } + return argcount; } else if (!strcmp(arg, "--no-diff-merges")) { revs->ignore_merges = 1; + } else if (!strcmp(arg, "-m")) { + revs->ignore_merges = 0; } else if (!strcmp(arg, "-c")) { revs->diff = 1; revs->dense_combined_merges = 0; -- 2.20.1