From patchwork Mon Dec 21 15:19:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985233 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 97EEAC433E0 for ; Mon, 21 Dec 2020 19:13:00 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5BC0B22527 for ; Mon, 21 Dec 2020 19:13:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726071AbgLUTMU (ORCPT ); Mon, 21 Dec 2020 14:12:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59532 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725785AbgLUTMU (ORCPT ); Mon, 21 Dec 2020 14:12:20 -0500 Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC7F0C061793 for ; Mon, 21 Dec 2020 11:11:38 -0800 (PST) Received: by mail-lf1-x12a.google.com with SMTP id a12so26273475lfl.6 for ; Mon, 21 Dec 2020 11:11:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mV2DL/c4HjDqgMyPJ4ynRIXRuP9LpBLgsziGY0pucv8=; b=Sqzdi9LdIjYacvC0tbmB5xYsoZlhiFO8Ed3Sw00U5PYF8A7InonkauMOfjvPBjekjv hn2/G6kdBKCSPHLJdtrUoWFhFJVZAJ6avFg7/ot3C1uRtKIP+C5AAmqXO0Jrcqlbick0 9r/pmkfk+6flhXJXtI3SGq6BF0cqiofbyPMs14XzZooGDOe2ShFUpkDVF3rOYpn3BzbS LOtd7+8tJRaA5NB1a9m97K/iUdoQ8MF5xiz7Cv6wYMYG5iW099JTlkCV70n2BRekCdCw yjf9zXueJ7fXA/7By+aigYYuRMmVRq96eTVQtN2WvKphuCWWK8S/dh+TypKPQuP6ZvdV bF+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mV2DL/c4HjDqgMyPJ4ynRIXRuP9LpBLgsziGY0pucv8=; b=Vrzfeh+J0wJ7SMj215hx3WBIU3tWnsa59t6++32RI12OHB3qU6F3Z1tp3n1BRI6oLA SWAchEaKUyMLRMdUHENY6iy7elPSiNWGSQs20MFhm9OGG6kCzii/heKYCeXDh71tUIr5 BfrOICFH3zRqb8CJJZ6NwBXw/r4FBtcnjj8P7vR0vILnpEOXT23xZVLebOfk0IlkakXg qQiM6rVsauvf4hMGDMi3bg3uCmc5vj+bN5X4g5fconHwdVr6+qUqSbC0nBIYP/4t/Nch vXHPHL+vNKeOqVIC3P9SAriWwvJiTUPicjLDzHNxW/0RyV1wFXKL4czXOmxhCNiD09Je gDgg== X-Gm-Message-State: AOAM530v5kh9QyZAy4b7qxL1aAkhQmBw3Qsc0Y+yYxZ6/Mh/yBSrKZg/ nA/j8m7RraKH2nmDcvUToGlfTapaMvk= X-Google-Smtp-Source: ABdhPJyDljoRLHThiGAMvLgwux3DQohDiD8FovgpxA0/uWorgpg5AfzdUhwp+Aznl/ZfT1npb8YEfA== X-Received: by 2002:a2e:b88e:: with SMTP id r14mr7382525ljp.254.1608564034096; Mon, 21 Dec 2020 07:20:34 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:33 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 01/32] revision: factor out parsing of diff-merge related options Date: Mon, 21 Dec 2020 18:19:29 +0300 Message-Id: <20201221152000.13134-2-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Move all the parsing code related to diffing merges into new parse_diff_merge_opts() function. Signed-off-by: Sergey Organov --- revision.c | 67 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 40 insertions(+), 27 deletions(-) diff --git a/revision.c b/revision.c index aa6221204081..8b17cfd754fe 100644 --- a/revision.c +++ b/revision.c @@ -2153,6 +2153,45 @@ static void add_message_grep(struct rev_info *revs, const char *pattern) add_grep(revs, pattern, GREP_PATTERN_BODY); } +static int parse_diff_merge_opts(struct rev_info *revs, const char **argv) +{ + int argcount = 1; + const char *optarg; + const char *arg = argv[0]; + + if (!strcmp(arg, "-m")) { + /* + * To "diff-index", "-m" means "match missing", and to the "log" + * family of commands, it means "show full diff for merges". Set + * both fields appropriately. + */ + revs->ignore_merges = 0; + revs->match_missing = 1; + } else if (!strcmp(arg, "-c")) { + revs->diff = 1; + revs->dense_combined_merges = 0; + revs->combine_merges = 1; + } else if (!strcmp(arg, "--cc")) { + revs->diff = 1; + revs->dense_combined_merges = 1; + revs->combine_merges = 1; + } else if (!strcmp(arg, "--no-diff-merges")) { + revs->ignore_merges = 1; + } else if (!strcmp(arg, "--combined-all-paths")) { + revs->diff = 1; + revs->combined_all_paths = 1; + } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { + if (!strcmp(optarg, "off")) { + revs->ignore_merges = 1; + } else { + die(_("unknown value for --diff-merges: %s"), optarg); + } + } else + argcount = 0; + + return argcount; +} + static int handle_revision_opt(struct rev_info *revs, int argc, const char **argv, int *unkc, const char **unkv, const struct setup_revision_opt* opt) @@ -2349,34 +2388,8 @@ 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")) { - /* - * To "diff-index", "-m" means "match missing", and to the "log" - * family of commands, it means "show full diff for merges". Set - * both fields appropriately. - */ - revs->ignore_merges = 0; - revs->match_missing = 1; - } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { - if (!strcmp(optarg, "off")) { - revs->ignore_merges = 1; - } else { - die(_("unknown value for --diff-merges: %s"), optarg); - } + } else if ((argcount = parse_diff_merge_opts(revs, argv))) { return argcount; - } else if (!strcmp(arg, "--no-diff-merges")) { - revs->ignore_merges = 1; - } else if (!strcmp(arg, "-c")) { - revs->diff = 1; - revs->dense_combined_merges = 0; - revs->combine_merges = 1; - } else if (!strcmp(arg, "--combined-all-paths")) { - revs->diff = 1; - revs->combined_all_paths = 1; - } else if (!strcmp(arg, "--cc")) { - revs->diff = 1; - revs->dense_combined_merges = 1; - revs->combine_merges = 1; } else if (!strcmp(arg, "-v")) { revs->verbose_header = 1; } else if (!strcmp(arg, "--pretty")) { From patchwork Mon Dec 21 15:19:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985211 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1600AC4332E for ; Mon, 21 Dec 2020 18:46:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F1BC523123 for ; Mon, 21 Dec 2020 18:46:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727479AbgLUSql (ORCPT ); Mon, 21 Dec 2020 13:46:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55504 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726075AbgLUSql (ORCPT ); Mon, 21 Dec 2020 13:46:41 -0500 Received: from mail-ej1-x629.google.com (mail-ej1-x629.google.com [IPv6:2a00:1450:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9585CC0611C5 for ; Mon, 21 Dec 2020 10:45:53 -0800 (PST) Received: by mail-ej1-x629.google.com with SMTP id g20so14885386ejb.1 for ; Mon, 21 Dec 2020 10:45:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Gsqo+O6UqNMmgnY88RZSDSouWNehD1MhUQs+KubNeD0=; b=mz7UazsGp88JfBs9ZH3HNLX7FO6jE4yS1gPOUGCMUipqi47J34Vi7KUMulA1n8qbz+ KvZHv50RFEtItHQJAHHPPAR4PStHXcU+jkihypLnA8kemUT0/DAonSvjyw4eWOffJ3aV oelrUM7ZzMre0h71JEUmnoOs4XT2F1IId0jh3cR3J5aZE2chfFytooEOaC8bSOaWFrJk fZcnJiqlW1WqCsftU3NMOCEFrmrpoS67h9QBalvlsDou7Lg3ofy2CPSaT3e1fhq5lNy6 r15iOeG92DfjTGAwFcLU70Kw0N/oYO8razxUEre8VH+VZhULKjsGDuVn++s0gpAj9CHo MHew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Gsqo+O6UqNMmgnY88RZSDSouWNehD1MhUQs+KubNeD0=; b=A7GnjNk5ET4X6h7eUxB5FxP8lfFVjF+J5DDZ+z70kXxAa/knWs4onFtzg/UYHQBn2C Pcec3mCpMfxkNeYwxMPNJL93wXByDsYGUFV6zB5Zs/2fPYju/phR1kgj1yzuFwuRk+gS xTTBULSRBj96IrNP73pGOoaQJ852/bnvCawtDLUOm7+z2Vt0GnNglHOtHdjoc3zFkMPj C79bboElDmkHr61v9sBlCzKfCCMh9BpwjAgxCqsMX5Tuw2dN729bohoPFHdrQ1TBa//B UUtuFqYBrsvtTTubZ3fpXO2yGMvUqpOf2c7G8BBXIuOQ31mTfxr5Z/aIWbY1FlJx4S2v C/Ew== X-Gm-Message-State: AOAM530plQ+dXMNLRnsCX1+s6HKEc7cM+w/Wr7aggD7967ZMuK5OrSwQ iocZFPMN9cMNzILzbA19BZfowEKLrGM= X-Google-Smtp-Source: ABdhPJw/hMODxdLOvv+l6qu0Cv/neCKi2Qsep+j9oTmODYmkEJNgxFgcp5ymS16/ZAqSnggbkigCfw== X-Received: by 2002:a2e:9f01:: with SMTP id u1mr7329892ljk.386.1608564035314; Mon, 21 Dec 2020 07:20:35 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:34 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 02/32] revision: factor out setup of diff-merge related settings Date: Mon, 21 Dec 2020 18:19:30 +0300 Message-Id: <20201221152000.13134-3-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Move all the setting code related to diffing merges into new setup_diff_merge_revs() function. Signed-off-by: Sergey Organov --- revision.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/revision.c b/revision.c index 8b17cfd754fe..d818e0b18bbc 100644 --- a/revision.c +++ b/revision.c @@ -2192,6 +2192,16 @@ static int parse_diff_merge_opts(struct rev_info *revs, const char **argv) return argcount; } +static void setup_diff_merges_revs(struct rev_info *revs) +{ + if (revs->combine_merges && revs->ignore_merges < 0) + revs->ignore_merges = 0; + if (revs->ignore_merges < 0) + revs->ignore_merges = 1; + if (revs->combined_all_paths && !revs->combine_merges) + die("--combined-all-paths makes no sense without -c or --cc"); +} + static int handle_revision_opt(struct rev_info *revs, int argc, const char **argv, int *unkc, const char **unkv, const struct setup_revision_opt* opt) @@ -2886,12 +2896,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s copy_pathspec(&revs->diffopt.pathspec, &revs->prune_data); } - if (revs->combine_merges && revs->ignore_merges < 0) - revs->ignore_merges = 0; - if (revs->ignore_merges < 0) - revs->ignore_merges = 1; - if (revs->combined_all_paths && !revs->combine_merges) - die("--combined-all-paths makes no sense without -c or --cc"); + + setup_diff_merges_revs(revs); revs->diffopt.abbrev = revs->abbrev; From patchwork Mon Dec 21 15:19:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985051 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D0D84C43381 for ; Mon, 21 Dec 2020 18:03:51 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id ADAE623159 for ; Mon, 21 Dec 2020 18:03:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726188AbgLUSDe (ORCPT ); Mon, 21 Dec 2020 13:03:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48462 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726000AbgLUSDd (ORCPT ); Mon, 21 Dec 2020 13:03:33 -0500 Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2F24DC061248 for ; Mon, 21 Dec 2020 10:03:18 -0800 (PST) Received: by mail-ej1-x632.google.com with SMTP id q22so14696258eja.2 for ; Mon, 21 Dec 2020 10:03:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=b/5JHbDbPC3Nt0YIkibu+H0qEMLkn1if1xWwVfnpFpw=; b=PlHCSeeieGlZJ3cJ3HT0rP89jLnbL8JiBRPBeY82YL7MrTmHAmvQuwU/yknjGAVn7o OiezcTzcUpHv9e0/yqtQAxwPQ+aW9lBaxVEuT1cRTuabg7xyVWOArzeox669JVrp7Ap2 OufC+y4pZyK1BgvmUz5khbiJmXqUF08f3bvhwx45xL9ubs7s48EJfKECfttmxgm1Q7CS UV3lmvLINOr+V5wpgD5IQqoJNIIEacSh0jEJgs5i61F7Y4qPtJUoJ9qeOgYycSAmFmu5 CqpBqhYS61PJBnEoVlTceNC3JqNl0FbJxV/EfryN36ak8ua3Td+XR9CKoQTb/XcrSHWF DPXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=b/5JHbDbPC3Nt0YIkibu+H0qEMLkn1if1xWwVfnpFpw=; b=IQh0IT0K1VqDp2FLNyya46gTGKkgGf35duPTMHZHE+7qCWvCU2KFybZKfo3GSJd9ou UG0qPXB0Zog17j2LKaNL6YQW5jjGMFY+vwc4KTis3s2BOJSSXGFDV9XmlbgdKCFBb8wR isxVXHRJMIi5HDGAZVy7qXQhQ+VEfRV5Sqq/3G34hg0U8Aca79NDxVnF3lm1Z2VenOtP 18qHDM7MujfiNDZIGiPEOjSQ8RNeNXt3Wv07Bvz18cCzXrORj99PcOXTFKjCcS8Yakth YJXqROw0KxDkGyo78iEdp2E5CBTqRTKWKkgjFv1PWGH9aGHZDg3lp2kJFZVsDiL69KB1 LvUw== X-Gm-Message-State: AOAM530l2dPYSt/rbt0cb7hSW+hS+5vmNs/KjDgkfi7lVIr1n21LAS3+ FLMmc3B1SOCK6ghNm2V4ldUc7Aeh8Hs= X-Google-Smtp-Source: ABdhPJzo1/IcWdym18eorelxDoWL12q6p85MwdI3xeBpF8H4Qs3mCM8JkQrjDmGqcL5vnLtDgcyrhw== X-Received: by 2002:a05:651c:509:: with SMTP id o9mr7345555ljp.212.1608564036339; Mon, 21 Dec 2020 07:20:36 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:35 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 03/32] revision: factor out initialization of diff-merge related settings Date: Mon, 21 Dec 2020 18:19:31 +0300 Message-Id: <20201221152000.13134-4-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Move initialization code related to diffing merges into new init_diff_merge_revs() function. Signed-off-by: Sergey Organov --- revision.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/revision.c b/revision.c index d818e0b18bbc..3250b2d7e112 100644 --- a/revision.c +++ b/revision.c @@ -1805,6 +1805,8 @@ static int add_parents_only(struct rev_info *revs, const char *arg_, int flags, return 1; } +static void init_diff_merge_revs(struct rev_info *revs); + void repo_init_revisions(struct repository *r, struct rev_info *revs, const char *prefix) @@ -1813,7 +1815,7 @@ void repo_init_revisions(struct repository *r, revs->repo = r; revs->abbrev = DEFAULT_ABBREV; - revs->ignore_merges = -1; + init_diff_merge_revs(revs); revs->simplify_history = 1; revs->pruning.repo = r; revs->pruning.flags.recursive = 1; @@ -2153,6 +2155,11 @@ static void add_message_grep(struct rev_info *revs, const char *pattern) add_grep(revs, pattern, GREP_PATTERN_BODY); } +static void init_diff_merge_revs(struct rev_info *revs) +{ + revs->ignore_merges = -1; +} + static int parse_diff_merge_opts(struct rev_info *revs, const char **argv) { int argcount = 1; From patchwork Mon Dec 21 15:19:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985249 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 83041C433DB for ; Mon, 21 Dec 2020 19:18:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 46AF822ADF for ; Mon, 21 Dec 2020 19:18:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726071AbgLUTSe (ORCPT ); Mon, 21 Dec 2020 14:18:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725930AbgLUTSe (ORCPT ); Mon, 21 Dec 2020 14:18:34 -0500 Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D663DC0613D3 for ; Mon, 21 Dec 2020 11:17:53 -0800 (PST) Received: by mail-lf1-x133.google.com with SMTP id x20so26229580lfe.12 for ; Mon, 21 Dec 2020 11:17:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=81t35u6BLxne4GZv6Q4N80La/+ff+O8tk+vKdsz8EMw=; b=G+TuRQ/3ISehNcTuGNvMF/neei8aKyre8KuKdQs5JiKj/HZs9yVZjeB7UhdiIvEb+J xnm2xS+1I0UJc3tC6zEQxohtvR6hTk2+evYGAUlL35DBI7BsQkBrth/7tcZG2GpjnphD IXfBKb07SWMQ9d/TqdMeClPWvCjW9dzV7dGweDhlAtndy4f8RJcnMrqHnlmvSkw1uHrT 81MtDxmxRi11WgVLkOP97lzn8sS19DxLNMLrCg853IJTOagRb027Ius2rbbC6C3dzaxB yGM4CmlCzBzS9Usl45nLXjePfxMRrEunxwuMaF0io2mJb1YjJNYnfJbgcNckEIBBRACQ TMYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=81t35u6BLxne4GZv6Q4N80La/+ff+O8tk+vKdsz8EMw=; b=Lwo4CNqcIucA7oypvJoyDo/ZvmxV7PqY+ubQw/OB2ZOk4902ITBZGzcwq+7X4InMmv dCdvvVCgn15LPK3k6WQahdGJrt/xCK3B6n0d0HJYMSXBdjuQ4zjkZcJzPdrtGoEB1LND J19Bc/I6f9r+wHpbMdS9on/xWZCMnPaNMDbEzIXTgjc5r+Jy+ZDHTMu1LNrDrqWGGdXE mA6GSbQ/M2P7MXc+fyOzmcfI7P5XjCbHU6Hj3SAUTQnf/JOXsRaQxsdoETNWf7MCh/q9 dGLJCqOGyOMCHu4ZWocn0+Y0rahWUPDEnMzC+THSbd3PyqVFBw8CS0yw4ZmIMtWolAW2 tywg== X-Gm-Message-State: AOAM532oMbyu6CfnVH/c1KwFlNGJ8hNhXJLUbTDGbQn7shFAbdX8fSA8 uSk5wETZenZ9o7B7YNZ4ao1PTQXDxqo= X-Google-Smtp-Source: ABdhPJzLN7S3VpW2oLgqUdMRp40GxLIUotdziCMMhjG4HmmjWM32SYA3NlkRK08HI68Yuw59to2DZg== X-Received: by 2002:a2e:894c:: with SMTP id b12mr7318714ljk.401.1608564037421; Mon, 21 Dec 2020 07:20:37 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:36 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 04/32] revision: provide implementation for diff merges tweaks Date: Mon, 21 Dec 2020 18:19:32 +0300 Message-Id: <20201221152000.13134-5-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Use these implementations from show_setup_revisions_tweak() and log_setup_revisions_tweak() in builtin/log.c. This completes moving of management of diff merges parameters to a single place, where we can finally observe them simultaneously. Signed-off-by: Sergey Organov --- builtin/log.c | 13 ++----------- revision.c | 19 +++++++++++++++++++ revision.h | 3 +++ 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/builtin/log.c b/builtin/log.c index 0a7ed4bef92b..717855a49e90 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -598,15 +598,7 @@ static int show_tree_object(const struct object_id *oid, static void show_setup_revisions_tweak(struct rev_info *rev, struct setup_revision_opt *opt) { - if (rev->ignore_merges < 0) { - /* There was no "-m" variant on the command line */ - rev->ignore_merges = 0; - if (!rev->first_parent_only && !rev->combine_merges) { - /* No "--first-parent", "-c", or "--cc" */ - rev->combine_merges = 1; - rev->dense_combined_merges = 1; - } - } + rev_diff_merges_default_to_dense_combined(rev); if (!rev->diffopt.output_format) rev->diffopt.output_format = DIFF_FORMAT_PATCH; } @@ -731,8 +723,7 @@ static void log_setup_revisions_tweak(struct rev_info *rev, if (!rev->diffopt.output_format && rev->combine_merges) rev->diffopt.output_format = DIFF_FORMAT_PATCH; - if (rev->first_parent_only && rev->ignore_merges < 0) - rev->ignore_merges = 0; + rev_diff_merges_first_parent_defaults_to_enable(rev); } int cmd_log(int argc, const char **argv, const char *prefix) diff --git a/revision.c b/revision.c index 3250b2d7e112..1c224d276474 100644 --- a/revision.c +++ b/revision.c @@ -2209,6 +2209,25 @@ static void setup_diff_merges_revs(struct rev_info *revs) die("--combined-all-paths makes no sense without -c or --cc"); } +void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs) +{ + if (revs->first_parent_only && revs->ignore_merges < 0) + revs->ignore_merges = 0; +} + +void rev_diff_merges_default_to_dense_combined(struct rev_info *revs) +{ + if (revs->ignore_merges < 0) { + /* There was no "-m" variant on the command line */ + revs->ignore_merges = 0; + if (!revs->first_parent_only && !revs->combine_merges) { + /* No "--first-parent", "-c", or "--cc" */ + revs->combine_merges = 1; + revs->dense_combined_merges = 1; + } + } +} + static int handle_revision_opt(struct rev_info *revs, int argc, const char **argv, int *unkc, const char **unkv, const struct setup_revision_opt* opt) diff --git a/revision.h b/revision.h index f6bf860d19e5..3dd0229f4edc 100644 --- a/revision.h +++ b/revision.h @@ -456,4 +456,7 @@ int rewrite_parents(struct rev_info *revs, */ struct commit_list *get_saved_parents(struct rev_info *revs, const struct commit *commit); +void rev_diff_merges_default_to_dense_combined(struct rev_info *revs); +void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs); + #endif From patchwork Mon Dec 21 15:19:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985221 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0F526C433DB for ; Mon, 21 Dec 2020 18:53:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B9BEA22AAB for ; Mon, 21 Dec 2020 18:53:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725883AbgLUSxn (ORCPT ); Mon, 21 Dec 2020 13:53:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56618 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725777AbgLUSxm (ORCPT ); Mon, 21 Dec 2020 13:53:42 -0500 Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 358E1C0613D6 for ; Mon, 21 Dec 2020 10:53:02 -0800 (PST) Received: by mail-lf1-x12e.google.com with SMTP id o19so26214037lfo.1 for ; Mon, 21 Dec 2020 10:53:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hrLNlI7e9ugKl9VkhvjWwIEmsRj6frckGTWUDBYWgpE=; b=VeJcuBjMpobxf45rchxF/ylUZxL7ZC4yg2j7wAVDropH8nK4xVTGHUjW3eySoumL8b J2ThiFetHwWp6nUuTXou/VcGGEORVoOvWTrfUUQTtcyN3U3vKj0ELCQR0Y+eTSxgclJb AsKK9jabYo6meiBH9BT54ItuLW9M8OlseufkNDZ2LTUgg7H1TFKfgU4z4ppxF/rtHj8y LGxcem3nJPtP5cdUwS/87FXlnOnF2QV8L6l9uwUHxT6I0Dxf87Rg/TRwcTc4A6C2u0qd twpSPt1zhxSmjv7URxvX1DZqj2W6YbmsXMAc1rpJ1C3WOR7Mvda4Z8EkOMBiVQiUvomW x7Ng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hrLNlI7e9ugKl9VkhvjWwIEmsRj6frckGTWUDBYWgpE=; b=jCcw2Mz54ByjTr75Z9SMPj7g5ukS+OuKqeYsGuSEPdw69ama7Z02//q0aZApiWZmJ8 kDViVzmXQyWBdi2NOIuK8NSsP1vy6n0b4jRTgjesUJeI4O+RSqEXN0wnoQpHK2Sk9pFn ZKGOcn+Uk9SuwmUkd5eZTVTF+oRVZ6M6H0EEAekVZMzOlzFqeNZxGvP6ADQTi7oN5u6f 75wy8dngWwgoXDBQzEJK2Hy+A7c4ykbrlaOrzddqleS0NvGbz/spURPIoTBlAoXO2Bd+ J3lWFD9qlGIbh9waM41dYoArMaiNKtBjpreXbcLUOWyvAdhYnfLFDID2gkBQ41TzOk3O pg0g== X-Gm-Message-State: AOAM533FVtvqZAlxtG/2aSVxo4Sk4/sS+CRrecIrV/T8Eujdy3b590sT VpS9HiVWRYjlvcUyzkusob2Yw1QIuSc= X-Google-Smtp-Source: ABdhPJyhqJyqX2drJcy9Zj2es+VrcMMNHk3dSVgxq3K7t54p1rMOTvXAzTyOFAhhfFW25wNLNHYT5w== X-Received: by 2002:a2e:86d0:: with SMTP id n16mr7978392ljj.147.1608564038735; Mon, 21 Dec 2020 07:20:38 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:37 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 05/32] revision: move diff merges functions to its own diff-merges.c Date: Mon, 21 Dec 2020 18:19:33 +0300 Message-Id: <20201221152000.13134-6-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Create separate diff-merges.c and diff-merges.h files, and move all the code related to handling of diff merges there. Signed-off-by: Sergey Organov --- Makefile | 1 + builtin/log.c | 1 + diff-merges.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++ diff-merges.h | 18 ++++++++++++ revision.c | 76 +-------------------------------------------------- revision.h | 3 -- 6 files changed, 97 insertions(+), 78 deletions(-) create mode 100644 diff-merges.c create mode 100644 diff-merges.h diff --git a/Makefile b/Makefile index 1fb0ec17059a..d1347ef262cf 100644 --- a/Makefile +++ b/Makefile @@ -872,6 +872,7 @@ LIB_OBJS += date.o LIB_OBJS += decorate.o LIB_OBJS += delta-islands.o LIB_OBJS += diff-delta.o +LIB_OBJS += diff-merges.o LIB_OBJS += diff-lib.o LIB_OBJS += diff-no-index.o LIB_OBJS += diff.o diff --git a/builtin/log.c b/builtin/log.c index 717855a49e90..ad3092fdd854 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -12,6 +12,7 @@ #include "color.h" #include "commit.h" #include "diff.h" +#include "diff-merges.h" #include "revision.h" #include "log-tree.h" #include "builtin.h" diff --git a/diff-merges.c b/diff-merges.c new file mode 100644 index 000000000000..0204292aa9bb --- /dev/null +++ b/diff-merges.c @@ -0,0 +1,76 @@ +#include "diff-merges.h" + +#include "revision.h" + +void init_diff_merge_revs(struct rev_info *revs) +{ + revs->ignore_merges = -1; +} + +int parse_diff_merge_opts(struct rev_info *revs, const char **argv) +{ + int argcount = 1; + const char *optarg; + const char *arg = argv[0]; + + if (!strcmp(arg, "-m")) { + /* + * To "diff-index", "-m" means "match missing", and to the "log" + * family of commands, it means "show full diff for merges". Set + * both fields appropriately. + */ + revs->ignore_merges = 0; + revs->match_missing = 1; + } else if (!strcmp(arg, "-c")) { + revs->diff = 1; + revs->dense_combined_merges = 0; + revs->combine_merges = 1; + } else if (!strcmp(arg, "--cc")) { + revs->diff = 1; + revs->dense_combined_merges = 1; + revs->combine_merges = 1; + } else if (!strcmp(arg, "--no-diff-merges")) { + revs->ignore_merges = 1; + } else if (!strcmp(arg, "--combined-all-paths")) { + revs->diff = 1; + revs->combined_all_paths = 1; + } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { + if (!strcmp(optarg, "off")) { + revs->ignore_merges = 1; + } else { + die(_("unknown value for --diff-merges: %s"), optarg); + } + } else + argcount = 0; + + return argcount; +} + +void setup_diff_merges_revs(struct rev_info *revs) +{ + if (revs->combine_merges && revs->ignore_merges < 0) + revs->ignore_merges = 0; + if (revs->ignore_merges < 0) + revs->ignore_merges = 1; + if (revs->combined_all_paths && !revs->combine_merges) + die("--combined-all-paths makes no sense without -c or --cc"); +} + +void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs) +{ + if (revs->first_parent_only && revs->ignore_merges < 0) + revs->ignore_merges = 0; +} + +void rev_diff_merges_default_to_dense_combined(struct rev_info *revs) +{ + if (revs->ignore_merges < 0) { + /* There was no "-m" variant on the command line */ + revs->ignore_merges = 0; + if (!revs->first_parent_only && !revs->combine_merges) { + /* No "--first-parent", "-c", or "--cc" */ + revs->combine_merges = 1; + revs->dense_combined_merges = 1; + } + } +} diff --git a/diff-merges.h b/diff-merges.h new file mode 100644 index 000000000000..7e970b266cf5 --- /dev/null +++ b/diff-merges.h @@ -0,0 +1,18 @@ +#ifndef DIFF_MERGES_H +#define DIFF_MERGES_H + +/* + * diff-merges - utility module to handle command-line options for + * selection of particular diff format of merge commits + * representation. + */ + +struct rev_info; + +void init_diff_merge_revs(struct rev_info *revs); +int parse_diff_merge_opts(struct rev_info *revs, const char **argv); +void setup_diff_merges_revs(struct rev_info *revs); +void rev_diff_merges_default_to_dense_combined(struct rev_info *revs); +void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs); + +#endif diff --git a/revision.c b/revision.c index 1c224d276474..4bc14a08a624 100644 --- a/revision.c +++ b/revision.c @@ -5,6 +5,7 @@ #include "tree.h" #include "commit.h" #include "diff.h" +#include "diff-merges.h" #include "refs.h" #include "revision.h" #include "repository.h" @@ -1805,8 +1806,6 @@ static int add_parents_only(struct rev_info *revs, const char *arg_, int flags, return 1; } -static void init_diff_merge_revs(struct rev_info *revs); - void repo_init_revisions(struct repository *r, struct rev_info *revs, const char *prefix) @@ -2155,79 +2154,6 @@ static void add_message_grep(struct rev_info *revs, const char *pattern) add_grep(revs, pattern, GREP_PATTERN_BODY); } -static void init_diff_merge_revs(struct rev_info *revs) -{ - revs->ignore_merges = -1; -} - -static int parse_diff_merge_opts(struct rev_info *revs, const char **argv) -{ - int argcount = 1; - const char *optarg; - const char *arg = argv[0]; - - if (!strcmp(arg, "-m")) { - /* - * To "diff-index", "-m" means "match missing", and to the "log" - * family of commands, it means "show full diff for merges". Set - * both fields appropriately. - */ - revs->ignore_merges = 0; - revs->match_missing = 1; - } else if (!strcmp(arg, "-c")) { - revs->diff = 1; - revs->dense_combined_merges = 0; - revs->combine_merges = 1; - } else if (!strcmp(arg, "--cc")) { - revs->diff = 1; - revs->dense_combined_merges = 1; - revs->combine_merges = 1; - } else if (!strcmp(arg, "--no-diff-merges")) { - revs->ignore_merges = 1; - } else if (!strcmp(arg, "--combined-all-paths")) { - revs->diff = 1; - revs->combined_all_paths = 1; - } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { - if (!strcmp(optarg, "off")) { - revs->ignore_merges = 1; - } else { - die(_("unknown value for --diff-merges: %s"), optarg); - } - } else - argcount = 0; - - return argcount; -} - -static void setup_diff_merges_revs(struct rev_info *revs) -{ - if (revs->combine_merges && revs->ignore_merges < 0) - revs->ignore_merges = 0; - if (revs->ignore_merges < 0) - revs->ignore_merges = 1; - if (revs->combined_all_paths && !revs->combine_merges) - die("--combined-all-paths makes no sense without -c or --cc"); -} - -void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs) -{ - if (revs->first_parent_only && revs->ignore_merges < 0) - revs->ignore_merges = 0; -} - -void rev_diff_merges_default_to_dense_combined(struct rev_info *revs) -{ - if (revs->ignore_merges < 0) { - /* There was no "-m" variant on the command line */ - revs->ignore_merges = 0; - if (!revs->first_parent_only && !revs->combine_merges) { - /* No "--first-parent", "-c", or "--cc" */ - revs->combine_merges = 1; - revs->dense_combined_merges = 1; - } - } -} - static int handle_revision_opt(struct rev_info *revs, int argc, const char **argv, int *unkc, const char **unkv, const struct setup_revision_opt* opt) diff --git a/revision.h b/revision.h index 3dd0229f4edc..f6bf860d19e5 100644 --- a/revision.h +++ b/revision.h @@ -456,7 +456,4 @@ int rewrite_parents(struct rev_info *revs, */ struct commit_list *get_saved_parents(struct rev_info *revs, const struct commit *commit); -void rev_diff_merges_default_to_dense_combined(struct rev_info *revs); -void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs); - #endif From patchwork Mon Dec 21 15:19:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985095 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EC4E9C433DB for ; Mon, 21 Dec 2020 18:16:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AFAC222D08 for ; Mon, 21 Dec 2020 18:16:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726661AbgLUSQM (ORCPT ); Mon, 21 Dec 2020 13:16:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725898AbgLUSQL (ORCPT ); Mon, 21 Dec 2020 13:16:11 -0500 Received: from mail-lf1-x135.google.com (mail-lf1-x135.google.com [IPv6:2a00:1450:4864:20::135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD7CBC061282 for ; Mon, 21 Dec 2020 10:15:30 -0800 (PST) Received: by mail-lf1-x135.google.com with SMTP id y19so25765354lfa.13 for ; Mon, 21 Dec 2020 10:15:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ulbuL7UWviHjRCDo+NgObEnzTe1eCYG8vdzTzEa2WYM=; b=fqhK1oKeSoxPcYwsVJDkCMYJ7xzmZgzXmZJpFZ5LY2KXxg47pcEfOdYeNif4DhQtSL GVQbF9/UM/aMvU3PO3ZWlXOMa3kHPIutquAxB8pPFT6YoaM4mt1LRbA20XS6THACcnyJ 7LtxD4+fDUgqkXEkS/pFtcVqql1Iw9DBYVE4QF8NI0vXvsxgPceDCcsd8jlxXoA4bjWX UwuZrUES7uJ4Q8fi8N06qiuG4Scrx8ggSQqhgFrbh7nmkheAw/V5yfBW0j+D+86VQ2qg KrBO6/Hlony8BIgeTvDGwpGoJiUrn4r5iRr3bXx4w3YAZwIHgnIN13Iu+YyuCNp4zplh u4Ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ulbuL7UWviHjRCDo+NgObEnzTe1eCYG8vdzTzEa2WYM=; b=O83VUjNbCVbj284n3xjcf+JzuAl0J/yOkvlFsL/URVHWt8z3XgxKjvAZsDBXvzFOKL xH3AQMxfdg3q7eFSUZoPE/ZHtucbM1RBz/r0jLOQrLq8+1VV1Zc8TSivPzVYZtE0oOtk 0jDnDQGEzh5MCbUql18JtBwX3Rcfnlz1L055Ukq0KdAQDGhpmlf0hk3M25LOJA1kWybY LtGXN35CIkPylhVmfxdkFMNGLtrX8g5qK19OBuXjlzThvLigmUI0jYBCpI3oxZQiJ3hI rrf6dMT1e6iNBzHGtLe2jYD/H+rhEBra9IPA+Q6tH6Y2b5osG2Bb5Ad/0MN+4eYXw78J yUow== X-Gm-Message-State: AOAM530IbDQmCWv0ZjjKkR00yQAgNgfE1GBMZWHkUl/9xNiu2Jtnv+jK wpm3BWxCpfvm9PSmrCg6KpQL8UPnFlo= X-Google-Smtp-Source: ABdhPJz2OUDTNezVEDPHdCboZUMi5xUVDV6vLCjtIo3hx3RHt/HTNylz6fn93fj38svZTvZ5hayWXQ== X-Received: by 2002:a05:6512:1095:: with SMTP id j21mr6661769lfg.309.1608564040001; Mon, 21 Dec 2020 07:20:40 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:39 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 06/32] diff-merges: rename all functions to have common prefix Date: Mon, 21 Dec 2020 18:19:34 +0300 Message-Id: <20201221152000.13134-7-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Use the same "diff_merges" prefix for all the diff merges function names. Signed-off-by: Sergey Organov --- builtin/log.c | 4 ++-- diff-merges.c | 10 +++++----- diff-merges.h | 15 ++++++++++----- revision.c | 6 +++--- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/builtin/log.c b/builtin/log.c index ad3092fdd854..77a7bba543ad 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -599,7 +599,7 @@ static int show_tree_object(const struct object_id *oid, static void show_setup_revisions_tweak(struct rev_info *rev, struct setup_revision_opt *opt) { - rev_diff_merges_default_to_dense_combined(rev); + diff_merges_default_to_dense_combined(rev); if (!rev->diffopt.output_format) rev->diffopt.output_format = DIFF_FORMAT_PATCH; } @@ -724,7 +724,7 @@ static void log_setup_revisions_tweak(struct rev_info *rev, if (!rev->diffopt.output_format && rev->combine_merges) rev->diffopt.output_format = DIFF_FORMAT_PATCH; - rev_diff_merges_first_parent_defaults_to_enable(rev); + diff_merges_first_parent_defaults_to_enable(rev); } int cmd_log(int argc, const char **argv, const char *prefix) diff --git a/diff-merges.c b/diff-merges.c index 0204292aa9bb..9286dbbd4dfd 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -2,12 +2,12 @@ #include "revision.h" -void init_diff_merge_revs(struct rev_info *revs) +void diff_merges_init_revs(struct rev_info *revs) { revs->ignore_merges = -1; } -int parse_diff_merge_opts(struct rev_info *revs, const char **argv) +int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { int argcount = 1; const char *optarg; @@ -46,7 +46,7 @@ int parse_diff_merge_opts(struct rev_info *revs, const char **argv) return argcount; } -void setup_diff_merges_revs(struct rev_info *revs) +void diff_merges_setup_revs(struct rev_info *revs) { if (revs->combine_merges && revs->ignore_merges < 0) revs->ignore_merges = 0; @@ -56,13 +56,13 @@ void setup_diff_merges_revs(struct rev_info *revs) die("--combined-all-paths makes no sense without -c or --cc"); } -void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs) +void diff_merges_first_parent_defaults_to_enable(struct rev_info *revs) { if (revs->first_parent_only && revs->ignore_merges < 0) revs->ignore_merges = 0; } -void rev_diff_merges_default_to_dense_combined(struct rev_info *revs) +void diff_merges_default_to_dense_combined(struct rev_info *revs) { if (revs->ignore_merges < 0) { /* There was no "-m" variant on the command line */ diff --git a/diff-merges.h b/diff-merges.h index 7e970b266cf5..4ced909b795e 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -9,10 +9,15 @@ struct rev_info; -void init_diff_merge_revs(struct rev_info *revs); -int parse_diff_merge_opts(struct rev_info *revs, const char **argv); -void setup_diff_merges_revs(struct rev_info *revs); -void rev_diff_merges_default_to_dense_combined(struct rev_info *revs); -void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs); +void diff_merges_init_revs(struct rev_info *revs); + +int diff_merges_parse_opts(struct rev_info *revs, const char **argv); + +void diff_merges_setup_revs(struct rev_info *revs); + +void diff_merges_default_to_dense_combined(struct rev_info *revs); + +void diff_merges_first_parent_defaults_to_enable(struct rev_info *revs); + #endif diff --git a/revision.c b/revision.c index 4bc14a08a624..5a0e3d6ad542 100644 --- a/revision.c +++ b/revision.c @@ -1814,7 +1814,7 @@ void repo_init_revisions(struct repository *r, revs->repo = r; revs->abbrev = DEFAULT_ABBREV; - init_diff_merge_revs(revs); + diff_merges_init_revs(revs); revs->simplify_history = 1; revs->pruning.repo = r; revs->pruning.flags.recursive = 1; @@ -2350,7 +2350,7 @@ 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 ((argcount = parse_diff_merge_opts(revs, argv))) { + } else if ((argcount = diff_merges_parse_opts(revs, argv))) { return argcount; } else if (!strcmp(arg, "-v")) { revs->verbose_header = 1; @@ -2849,7 +2849,7 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s &revs->prune_data); } - setup_diff_merges_revs(revs); + diff_merges_setup_revs(revs); revs->diffopt.abbrev = revs->abbrev; From patchwork Mon Dec 21 15:19:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985097 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 22B53C433E0 for ; Mon, 21 Dec 2020 18:16:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D4A6723103 for ; Mon, 21 Dec 2020 18:16:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726665AbgLUSQM (ORCPT ); Mon, 21 Dec 2020 13:16:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50582 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726556AbgLUSQL (ORCPT ); Mon, 21 Dec 2020 13:16:11 -0500 Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F246AC061285 for ; Mon, 21 Dec 2020 10:15:30 -0800 (PST) Received: by mail-ed1-x52e.google.com with SMTP id b2so10511744edm.3 for ; Mon, 21 Dec 2020 10:15:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/tiJaIrs+w3dght1iOvCrrZWJsCxl5+W23rO17dPpXk=; b=cLOCpr1KOKS4zMM4hrPTis7LbqiYcc+2hicYQ8HyNgSqc+kM63Lg5wKRiYtfHKIggR 8UJJrRUAZE4gfnryQeoHJiU2OaKmBsY71Z+0KwsA11g6QgB6Tl6kHnZcdG3fRGdyUsn/ xBjFzoPWvTj7gK+MicjV38JF9C57GVI+tS+1+thKaQr0hzb4A2js4zAV/v53AsJqQjod BEoAMaqgSr8oG4ivuTMjZeFU4TX6+z/pO4kCunU2mkR8Q7IKxNwJ309rPwn5RoXtZdWd xMyDv/RQCIXGmODl+ufb3ZPCoOFs3pCki7LZDH/keX3GoYP5nC/dG2C8vXbJYVvwSfXq PxgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/tiJaIrs+w3dght1iOvCrrZWJsCxl5+W23rO17dPpXk=; b=hzG7rqC/40CRqtDUXkTstCD0/EJXGpnUOtpKbLsExbl37NJkmEyVGbrtzuuN6HM2qu gKmGeZsKgt4J28fBrfdY7c+NFlRyk5KBA6oPDpgEoH4/wD8LPSmyUWtYGIPGLcFWH+Op rHAcvM4oyrUnWsqATMUvE4zOMCohSjmEoo0fiM0VfFQuzliLxhvOsfyPDg4+cW0KhPXh zUpYd8LHrOyR3famsK0eELj/LWgtv61WQLZVPR9r6zFRJbv78It6YhzWibF6dEyAst1k MWefFedBR7JmO1C0oc+7fJ4o8I+oZZozydnCOZ5pdWDQvZRs7lh3yR67iHRzwnUFf0lC KaLg== X-Gm-Message-State: AOAM530hV4p4iw4eGlPkWA/jPA5HMLKq/swTBAz0T9hIhPdTmYdszJTz DuXxOeBANSk5URt6wicDA9IJyXIrduA= X-Google-Smtp-Source: ABdhPJx+IZyK9dS4Lw4n8j/FIA79mTA+30zbQtDppdgR4OS4aLFO4ukZs3FhUsx/WM0xxuTJab3VDA== X-Received: by 2002:a05:651c:513:: with SMTP id o19mr7971804ljp.149.1608564041288; Mon, 21 Dec 2020 07:20:41 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:40 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 07/32] diff-merges: move checks for first_parent_only out of the module Date: Mon, 21 Dec 2020 18:19:35 +0300 Message-Id: <20201221152000.13134-8-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org The checks for first_parent_only don't in fact belong to this module, as the primary purpose of this flag is history traversal limiting, so get it out of this module and rename the diff_merges_first_parent_defaults_to_enable() to diff_merges_default_to_enable() to match new semantics. Signed-off-by: Sergey Organov --- builtin/log.c | 8 ++++++-- diff-merges.c | 10 ++++------ diff-merges.h | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/builtin/log.c b/builtin/log.c index 77a7bba543ad..a7791c003c91 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -599,7 +599,10 @@ static int show_tree_object(const struct object_id *oid, static void show_setup_revisions_tweak(struct rev_info *rev, struct setup_revision_opt *opt) { - diff_merges_default_to_dense_combined(rev); + if (rev->first_parent_only) + diff_merges_default_to_enable(rev); + else + diff_merges_default_to_dense_combined(rev); if (!rev->diffopt.output_format) rev->diffopt.output_format = DIFF_FORMAT_PATCH; } @@ -724,7 +727,8 @@ static void log_setup_revisions_tweak(struct rev_info *rev, if (!rev->diffopt.output_format && rev->combine_merges) rev->diffopt.output_format = DIFF_FORMAT_PATCH; - diff_merges_first_parent_defaults_to_enable(rev); + if (rev->first_parent_only) + diff_merges_default_to_enable(rev); } int cmd_log(int argc, const char **argv, const char *prefix) diff --git a/diff-merges.c b/diff-merges.c index 9286dbbd4dfd..a3bafa92f3e1 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -56,19 +56,17 @@ void diff_merges_setup_revs(struct rev_info *revs) die("--combined-all-paths makes no sense without -c or --cc"); } -void diff_merges_first_parent_defaults_to_enable(struct rev_info *revs) +void diff_merges_default_to_enable(struct rev_info *revs) { - if (revs->first_parent_only && revs->ignore_merges < 0) + if (revs->ignore_merges < 0) /* No -m */ revs->ignore_merges = 0; } void diff_merges_default_to_dense_combined(struct rev_info *revs) { - if (revs->ignore_merges < 0) { - /* There was no "-m" variant on the command line */ + if (revs->ignore_merges < 0) { /* No -m */ revs->ignore_merges = 0; - if (!revs->first_parent_only && !revs->combine_merges) { - /* No "--first-parent", "-c", or "--cc" */ + if (!revs->combine_merges) { /* No -c/--cc" */ revs->combine_merges = 1; revs->dense_combined_merges = 1; } diff --git a/diff-merges.h b/diff-merges.h index 4ced909b795e..6937d46219f1 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -17,7 +17,7 @@ void diff_merges_setup_revs(struct rev_info *revs); void diff_merges_default_to_dense_combined(struct rev_info *revs); -void diff_merges_first_parent_defaults_to_enable(struct rev_info *revs); +void diff_merges_default_to_enable(struct rev_info *revs); #endif From patchwork Mon Dec 21 15:19:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985223 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 03C28C433E9 for ; Mon, 21 Dec 2020 18:56:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B4DAD225AC for ; Mon, 21 Dec 2020 18:56:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726659AbgLUS4W (ORCPT ); Mon, 21 Dec 2020 13:56:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57034 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725883AbgLUS4W (ORCPT ); Mon, 21 Dec 2020 13:56:22 -0500 Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C626C0613D3 for ; Mon, 21 Dec 2020 10:55:41 -0800 (PST) Received: by mail-ed1-x52a.google.com with SMTP id cw27so10602167edb.5 for ; Mon, 21 Dec 2020 10:55:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hFQlziZ6dHmO6c8kZA0FgdRBVViP/3oud1A5ugh6jtw=; b=MLIor0xNwJeMgZRDVbPBg31PCoHSCeVCWrgpMygqNn7HAM35mpWbeplmMpcutzfLgn l1n6Uf2Zlf6eiMah3zvZ2M8SDBcGQ7LdxzE00vGdAkXi11NlS6CYGesGMmgsdby2GYp+ S7lSxIWiPM2K+Gd+etWx77LTtfGfu5urj1W4JDZgTqvFUnmjuqKE2BQ8qhEEBfs+Dywx wCUtxMuNDJYrM/t3PGAv0fI0I+rSTvNpPmpb03ekj1mdHfK8z0M13lq7HoXRtv9Te4Xw zbaebzx4s3rVxCuHogzZVa1XH3+aJz4DzPRN03MDKneQk8Pe51yRYQkyvgrlU99TJebf Mx0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hFQlziZ6dHmO6c8kZA0FgdRBVViP/3oud1A5ugh6jtw=; b=dgV99r4Stq6ESbTtvjCwccFUsjRqrAPcZLzoPfsSlyaq9Rg3hhxqbsDz9ZIdPhp08z IJMBNOw1Bc6u4cgawYRPLBgZNQKkq57nOWa41WYKypdpksRHgdWHGSHckFmcVXg1zUOO PX24xurP5rH70cTd5cjh1XEOkfz1IUKn1j3pXwvD+jGZlo/inkFSZ73gXeKlKADYVIy4 j+/P/H6oeRW//IJB0iRS2TiNzLHeyU4JHBRk8vEKJfqQ6SOPXVoVJ3Ef/G8D0Yv6Ejgk 9oBnt8VY4t0rkTD7DEGu68q+tNzUZFCbISCdsaGgsWAqKdQPEOTMkzTTUD3KQT4SYTOn a7mg== X-Gm-Message-State: AOAM531IVcv0l6AC6TYHN/avuJSUOYGPiC39ZLZqlhJ/fBhf6rFq/3QP dYp6DyGNfDYOSs34JP6M+k3Aox61l5Q= X-Google-Smtp-Source: ABdhPJwzSrSefdrSBrdfA1Jw8ObfvQeueMnw8SD8aqnvkJOkKzj/DWRp9bv53GRkl3/MQPwkYrgTHQ== X-Received: by 2002:a19:641:: with SMTP id 62mr6790040lfg.424.1608564042461; Mon, 21 Dec 2020 07:20:42 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:41 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 08/32] diff-merges: rename diff_merges_default_to_enable() to match semantics Date: Mon, 21 Dec 2020 18:19:36 +0300 Message-Id: <20201221152000.13134-9-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Rename diff_merges_default_to_enable() to diff_merges_default_to_first_parent() to match its semantics. Signed-off-by: Sergey Organov --- builtin/log.c | 4 ++-- diff-merges.c | 2 +- diff-merges.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/builtin/log.c b/builtin/log.c index a7791c003c91..63875c3aeec9 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -600,7 +600,7 @@ static void show_setup_revisions_tweak(struct rev_info *rev, struct setup_revision_opt *opt) { if (rev->first_parent_only) - diff_merges_default_to_enable(rev); + diff_merges_default_to_first_parent(rev); else diff_merges_default_to_dense_combined(rev); if (!rev->diffopt.output_format) @@ -728,7 +728,7 @@ static void log_setup_revisions_tweak(struct rev_info *rev, rev->diffopt.output_format = DIFF_FORMAT_PATCH; if (rev->first_parent_only) - diff_merges_default_to_enable(rev); + diff_merges_default_to_first_parent(rev); } int cmd_log(int argc, const char **argv, const char *prefix) diff --git a/diff-merges.c b/diff-merges.c index a3bafa92f3e1..76c804579758 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -56,7 +56,7 @@ void diff_merges_setup_revs(struct rev_info *revs) die("--combined-all-paths makes no sense without -c or --cc"); } -void diff_merges_default_to_enable(struct rev_info *revs) +void diff_merges_default_to_first_parent(struct rev_info *revs) { if (revs->ignore_merges < 0) /* No -m */ revs->ignore_merges = 0; diff --git a/diff-merges.h b/diff-merges.h index 6937d46219f1..18861dc5480e 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -17,7 +17,7 @@ void diff_merges_setup_revs(struct rev_info *revs); void diff_merges_default_to_dense_combined(struct rev_info *revs); -void diff_merges_default_to_enable(struct rev_info *revs); +void diff_merges_default_to_first_parent(struct rev_info *revs); #endif From patchwork Mon Dec 21 15:19:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985049 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20630C4332D for ; Mon, 21 Dec 2020 18:01:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DAC2522CA1 for ; Mon, 21 Dec 2020 18:01:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726070AbgLUSBS (ORCPT ); Mon, 21 Dec 2020 13:01:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48152 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726010AbgLUSBS (ORCPT ); Mon, 21 Dec 2020 13:01:18 -0500 Received: from mail-ej1-x634.google.com (mail-ej1-x634.google.com [IPv6:2a00:1450:4864:20::634]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12855C061793 for ; Mon, 21 Dec 2020 10:00:38 -0800 (PST) Received: by mail-ej1-x634.google.com with SMTP id qw4so14619911ejb.12 for ; Mon, 21 Dec 2020 10:00:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=eUK7HQQtb6M9Y8IMrQ8BaFwNOI4UclqRgx2ySDNUJmo=; b=nF4WOwHypqktJY0Dq7hpV93ZotwWHqWUZaNyxKEj+cd/OQOWY0FL5jxwUydIrFo+DE X1izt3JMyeCIx9BI8n8oSAEEigo0PHiqkR0VvjwVHkp9JjVznikFW/h8ibF0PNNAxpN0 wqwOj1ycQhLFM6CCD/esyjToXCa5RbdYZyKVgFFsLAkObRIKDKyfJMgQ0KWJ3lot/cs8 1tJGCZN4fQuvw4FDzz08LdTkmntBfvGIR+5V/gZCP3xAJFCkk7NdvGvFHeHY7rfu+A6U m/0evHE1UtVwIrProHGWfdh/UB+KqkdfiaBGCpq9ZlFY6Wvzi34P3ARS6on6mWUXeSn2 X//g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=eUK7HQQtb6M9Y8IMrQ8BaFwNOI4UclqRgx2ySDNUJmo=; b=JIvpVVYF1HZPSoIFe/XKESJUGxjwV8ZvjgbSVKij7Np/7LdXLOwH4tmIis2LFbag0/ Gr5q+SYtAyQuEibWdhwxrEhS98Juojr0mBMQYltkX2HuJbhK0Isx8D1/Irtcl4CFL5YJ 62Olk16T5Cahu23ot97IqmNvob0HqUIWDQq49/gp33sd/313sGQI6uRqv//Vr4r7k0sz xfbT6X24ZWuTu4zYc3Xk93y3soGE8TmoyXOvpWi4R2w7LyT1EY6S0JBIcDE+uPKrgwG8 HDb8uOq6QRJsKZu3gmoLlCuFKEYSmyvidiELDdE7JqkomlruCQyskHlOZ0qh9mzfkILH 16CQ== X-Gm-Message-State: AOAM531UMcn64lvs8nEaLEvnY1EDFfR2uV5eesgIKaqHEBbFkhM+4mKM pOXo01rXFXLGIr0zgmJpVRiF45nKRGc= X-Google-Smtp-Source: ABdhPJxDMwGcVTfzSlzZHRMSHQWCoH/okQVNw/0VKVOOY6HgdVKD3F2GYMKLFieBQteoYS3rh9MwTg== X-Received: by 2002:a2e:9757:: with SMTP id f23mr7538443ljj.55.1608564043770; Mon, 21 Dec 2020 07:20:43 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:42 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 09/32] diff-merges: re-arrange functions to match the order they are called in Date: Mon, 21 Dec 2020 18:19:37 +0300 Message-Id: <20201221152000.13134-10-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org For clarity, define public functions in the order they are called, to make logic inter-dependencies easier to grok. Signed-off-by: Sergey Organov --- diff-merges.c | 24 ++++++++++++++---------- diff-merges.h | 7 +++---- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 76c804579758..8325ab880166 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -2,6 +2,10 @@ #include "revision.h" +/* + * Public functions. They are in the order they are called. + */ + void diff_merges_init_revs(struct rev_info *revs) { revs->ignore_merges = -1; @@ -46,16 +50,6 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) return argcount; } -void diff_merges_setup_revs(struct rev_info *revs) -{ - if (revs->combine_merges && revs->ignore_merges < 0) - revs->ignore_merges = 0; - if (revs->ignore_merges < 0) - revs->ignore_merges = 1; - if (revs->combined_all_paths && !revs->combine_merges) - die("--combined-all-paths makes no sense without -c or --cc"); -} - void diff_merges_default_to_first_parent(struct rev_info *revs) { if (revs->ignore_merges < 0) /* No -m */ @@ -72,3 +66,13 @@ void diff_merges_default_to_dense_combined(struct rev_info *revs) } } } + +void diff_merges_setup_revs(struct rev_info *revs) +{ + if (revs->combine_merges && revs->ignore_merges < 0) + revs->ignore_merges = 0; + if (revs->ignore_merges < 0) + revs->ignore_merges = 1; + if (revs->combined_all_paths && !revs->combine_merges) + die("--combined-all-paths makes no sense without -c or --cc"); +} diff --git a/diff-merges.h b/diff-merges.h index 18861dc5480e..243ef915c4cd 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -13,11 +13,10 @@ void diff_merges_init_revs(struct rev_info *revs); int diff_merges_parse_opts(struct rev_info *revs, const char **argv); -void diff_merges_setup_revs(struct rev_info *revs); - -void diff_merges_default_to_dense_combined(struct rev_info *revs); - void diff_merges_default_to_first_parent(struct rev_info *revs); +void diff_merges_default_to_dense_combined(struct rev_info *revs); + +void diff_merges_setup_revs(struct rev_info *revs); #endif From patchwork Mon Dec 21 15:19:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985251 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B802AC433DB for ; Mon, 21 Dec 2020 19:19:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 88A4C22ADF for ; Mon, 21 Dec 2020 19:19:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726213AbgLUTS7 (ORCPT ); Mon, 21 Dec 2020 14:18:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60574 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725785AbgLUTS7 (ORCPT ); Mon, 21 Dec 2020 14:18:59 -0500 Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CA2BBC0613D6 for ; Mon, 21 Dec 2020 11:18:18 -0800 (PST) Received: by mail-lf1-x134.google.com with SMTP id l11so26383123lfg.0 for ; Mon, 21 Dec 2020 11:18:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WuwqwrvIkTLiwqA7mgIiaCDvYQ5YzkkGaWzqOEULN8o=; b=ThNH97R1vek2DSgNKrPyIRzoTMdveDDCGHktRC1sO2xW8QpMoYjuhvKSWLEZE9sV4J NQ3P+VFbmPJJvL6EsalIIzl0I4DPIQ5POTyBA7FPRWJYRfapBsVr8z4M1DDbx19PByyh eKf5EDM0nJDiuyM3hu7kZm0RQsZj812sbszfO2IdPRMLa2CbBGdgzQka2Bb2TLbgcmzP cW76hnvfBnP7hIBMZDsKf5YOPyhG9uDLKz10c8rAGSBEDhIVlgwRIhGmEZJFO5Ujc/89 KgSiW6VC8vEKudv+mIR73CdD45kFPsW55tkw4XtRscCwPvs5g+hRY6RxBqjrPnPFzdsz KtmQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WuwqwrvIkTLiwqA7mgIiaCDvYQ5YzkkGaWzqOEULN8o=; b=JXBuRdslHI1ivLM502cJN93SlaxummTBjfwPSR3x9drBuBJWu3qga/4q2Hw7so4+UC Yoso6+OXFPNMguCREu+Yam8YzQKh7P5FVPttkMCeIqxb7wHZrAcjoUo/TYYC58vZh5ZU o1dfLOvZ0fEOPjL8G5WNyfMTdNGnZ77k8fAA3Ws0P//Bu7ObdSLMg7Qy9GvOLR6LtNvm aN+h5gMmwBdgSurCDNf7GvpyhCk82TW6EeQRSz3nnDa9mRdwOLSqZpt48ZKOQgA9f9qT +wNtvIpgVm2ISOVizYeyFN0v1xKWb4D5EYQVFBt3LbJYb/ng+f/8n4aUdShqkb+G0HFw 0I7A== X-Gm-Message-State: AOAM530yqTIpVzm5aACQmkAS1DG+31swiIe+o2lkqcIzC3DmRsUdZrQ6 /4Ld/LjYRGXMnJCexx9/WoOghXIRcZA= X-Google-Smtp-Source: ABdhPJwrdw2Suf7J9krDPGa6zWOGRFhcip2O3uKobqulxZDa1rg19fVqye6nokYdTbvuoV9glpjyDw== X-Received: by 2002:a2e:7c12:: with SMTP id x18mr7819028ljc.324.1608564045044; Mon, 21 Dec 2020 07:20:45 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:44 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 10/32] diff-merges: new function diff_merges_suppress() Date: Mon, 21 Dec 2020 18:19:38 +0300 Message-Id: <20201221152000.13134-11-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org This function sets all the relevant flags to disabled state, so that no code that checks only one of them get it wrong. Then we call this new function everywhere where diff merges output suppression is needed. Signed-off-by: Sergey Organov --- builtin/merge.c | 3 ++- diff-merges.c | 17 +++++++++++++++-- diff-merges.h | 2 ++ fmt-merge-msg.c | 3 ++- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/builtin/merge.c b/builtin/merge.c index 9d5359edc2f7..1f7b69982b40 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -14,6 +14,7 @@ #include "lockfile.h" #include "run-command.h" #include "diff.h" +#include "diff-merges.h" #include "refs.h" #include "refspec.h" #include "commit.h" @@ -400,7 +401,7 @@ static void squash_message(struct commit *commit, struct commit_list *remotehead printf(_("Squash commit -- not updating HEAD\n")); repo_init_revisions(the_repository, &rev, NULL); - rev.ignore_merges = 1; + diff_merges_suppress(&rev); rev.commit_format = CMIT_FMT_MEDIUM; commit->object.flags |= UNINTERESTING; diff --git a/diff-merges.c b/diff-merges.c index 8325ab880166..23e6cb11d1ad 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -2,6 +2,14 @@ #include "revision.h" +static void suppress(struct rev_info *revs) +{ + revs->ignore_merges = 1; + revs->first_parent_merges = 0; + revs->combine_merges = 0; + revs->dense_combined_merges = 0; +} + /* * Public functions. They are in the order they are called. */ @@ -34,13 +42,13 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) revs->dense_combined_merges = 1; revs->combine_merges = 1; } else if (!strcmp(arg, "--no-diff-merges")) { - revs->ignore_merges = 1; + suppress(revs); } else if (!strcmp(arg, "--combined-all-paths")) { revs->diff = 1; revs->combined_all_paths = 1; } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { if (!strcmp(optarg, "off")) { - revs->ignore_merges = 1; + suppress(revs); } else { die(_("unknown value for --diff-merges: %s"), optarg); } @@ -50,6 +58,11 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) return argcount; } +void diff_merges_suppress(struct rev_info *revs) +{ + suppress(revs); +} + void diff_merges_default_to_first_parent(struct rev_info *revs) { if (revs->ignore_merges < 0) /* No -m */ diff --git a/diff-merges.h b/diff-merges.h index 243ef915c4cd..a031240576f7 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -13,6 +13,8 @@ void diff_merges_init_revs(struct rev_info *revs); int diff_merges_parse_opts(struct rev_info *revs, const char **argv); +void diff_merges_suppress(struct rev_info *revs); + void diff_merges_default_to_first_parent(struct rev_info *revs); void diff_merges_default_to_dense_combined(struct rev_info *revs); diff --git a/fmt-merge-msg.c b/fmt-merge-msg.c index bd22e1ea8865..abc3403fb820 100644 --- a/fmt-merge-msg.c +++ b/fmt-merge-msg.c @@ -2,6 +2,7 @@ #include "refs.h" #include "object-store.h" #include "diff.h" +#include "diff-merges.h" #include "revision.h" #include "tag.h" #include "string-list.h" @@ -668,7 +669,7 @@ int fmt_merge_msg(struct strbuf *in, struct strbuf *out, head = lookup_commit_or_die(&head_oid, "HEAD"); repo_init_revisions(the_repository, &rev, NULL); rev.commit_format = CMIT_FMT_ONELINE; - rev.ignore_merges = 1; + diff_merges_suppress(&rev); rev.limited = 1; strbuf_complete_line(out); From patchwork Mon Dec 21 15:19:39 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985053 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.9 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0AEF4C4332D for ; Mon, 21 Dec 2020 18:03:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E263B22D49 for ; Mon, 21 Dec 2020 18:03:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726203AbgLUSDl (ORCPT ); Mon, 21 Dec 2020 13:03:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48484 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725785AbgLUSDl (ORCPT ); Mon, 21 Dec 2020 13:03:41 -0500 Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 71D4DC0613D3 for ; Mon, 21 Dec 2020 10:03:25 -0800 (PST) Received: by mail-ed1-x531.google.com with SMTP id u19so10454983edx.2 for ; Mon, 21 Dec 2020 10:03:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=61BINhQ8Eu2xwEp9/vsPlUB9w5wSgAz0Ciq+G02xFXs=; b=XyRoyB89/fWFqJ4G6LI4uTILGBS47kL25APJ11TC6iJsFYpGbBFqt0q4Ko1GqUzY1X Yu7fR8JOFJHAAKfuOY/D6Lxjfw0L4a9yQveGbwXtKWBqU9AbyZZ5g8WssZ269CEGJGEk VJ4K216ViXPan+g2rUOQ2niz/HIYX4XZQ3aUOjFJ0AC8xrfFdw443v7kUTjECStNhecZ aswr/BBoXMdCk1CNgZwV0/V8JJuYCG9GBv4rDcM0hqEJuHLfTy/5oniH6A/CqzQK7upJ nB2RtuupSFSwrjjTdC5lxj9M9NPp2/AYXzbG8Qb3WixocLzGAbRz8ua9dDRaGShqNosR gY/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=61BINhQ8Eu2xwEp9/vsPlUB9w5wSgAz0Ciq+G02xFXs=; b=N7gXGgswGMvFknaJWnI8jwAfUYF4wHO9k1tosVdBHI1qs8lL/7Hzy3GltesJFSHzfK gEs5HSU/PTmMlPARYUCQC13g4N7nedZCE0TDfjuDKpxj9an8fIg/Mk4uJPuu9snf+HnH gOgDj7l6OFAiGeR83WAfCzAJMMXKq5Uo3JUHMz4iUZhNCutiusWyxczuwERtY6BBT5+4 I2eWioQKnIqQIhcE3A/8i8ODlB5HO9T/TMq5aiQdPSmTgd4T2v1hbU0hm7WzaGbF8VWu kVMINBSovwXS1GR7HbF2KunWq5VW5R35RhqErsxZSZbeULNer3NKSihkVf7ADeO6t2YC mqYw== X-Gm-Message-State: AOAM530Ii55grek3i4vFtrOSkBX4ikvy6xIxNnWPWlb7qDGKxoxEjOC/ ziu3yLfL8aUzo/3ReZ3cy2wfJnPErdo= X-Google-Smtp-Source: ABdhPJwAvfZ8k8Ic8FaZgWCOjkFq9Fu6M9WiwmNOIWehLWH26DTezR+TLm5RTwhaBsQ9CO1jGjn8kQ== X-Received: by 2002:a2e:988b:: with SMTP id b11mr7370391ljj.167.1608564046184; Mon, 21 Dec 2020 07:20:46 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:45 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 11/32] diff-merges: new function diff_merges_set_dense_combined_if_unset() Date: Mon, 21 Dec 2020 18:19:39 +0300 Message-Id: <20201221152000.13134-12-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Call it where given functionality is needed instead of direct checking/tweaking of diff merges related fields. Signed-off-by: Sergey Organov --- builtin/diff-files.c | 5 +++-- builtin/diff.c | 9 +++++---- diff-merges.c | 16 ++++++++++++++-- diff-merges.h | 2 ++ 4 files changed, 24 insertions(+), 8 deletions(-) diff --git a/builtin/diff-files.c b/builtin/diff-files.c index 1e352dd8f77c..4742a4559b21 100644 --- a/builtin/diff-files.c +++ b/builtin/diff-files.c @@ -7,6 +7,7 @@ #include "cache.h" #include "config.h" #include "diff.h" +#include "diff-merges.h" #include "commit.h" #include "revision.h" #include "builtin.h" @@ -69,9 +70,9 @@ int cmd_diff_files(int argc, const char **argv, const char *prefix) * was not asked to. "diff-files -c -p" should not densify * (the user should ask with "diff-files --cc" explicitly). */ - if (rev.max_count == -1 && !rev.combine_merges && + if (rev.max_count == -1 && (rev.diffopt.output_format & DIFF_FORMAT_PATCH)) - rev.combine_merges = rev.dense_combined_merges = 1; + diff_merges_set_dense_combined_if_unset(&rev); if (read_cache_preload(&rev.diffopt.pathspec) < 0) { perror("read_cache_preload"); diff --git a/builtin/diff.c b/builtin/diff.c index cd4083fed96e..2f570a3131cb 100644 --- a/builtin/diff.c +++ b/builtin/diff.c @@ -13,6 +13,7 @@ #include "blob.h" #include "tag.h" #include "diff.h" +#include "diff-merges.h" #include "diffcore.h" #include "revision.h" #include "log-tree.h" @@ -199,8 +200,8 @@ static int builtin_diff_combined(struct rev_info *revs, if (argc > 1) usage(builtin_diff_usage); - if (!revs->dense_combined_merges && !revs->combine_merges) - revs->dense_combined_merges = revs->combine_merges = 1; + diff_merges_set_dense_combined_if_unset(revs); + for (i = 1; i < ents; i++) oid_array_append(&parents, &ent[i].item->oid); diff_tree_combined(&ent[0].item->oid, &parents, revs); @@ -248,9 +249,9 @@ static int builtin_diff_files(struct rev_info *revs, int argc, const char **argv * dense one, --cc can be explicitly asked for, or just rely * on the default). */ - if (revs->max_count == -1 && !revs->combine_merges && + if (revs->max_count == -1 && (revs->diffopt.output_format & DIFF_FORMAT_PATCH)) - revs->combine_merges = revs->dense_combined_merges = 1; + diff_merges_set_dense_combined_if_unset(revs); setup_work_tree(); if (read_cache_preload(&revs->diffopt.pathspec) < 0) { diff --git a/diff-merges.c b/diff-merges.c index 23e6cb11d1ad..24f922cf8a0f 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -10,6 +10,13 @@ static void suppress(struct rev_info *revs) revs->dense_combined_merges = 0; } +static void set_dense_combined(struct rev_info *revs) +{ + revs->combine_merges = 1; + revs->dense_combined_merges = 1; +} + + /* * Public functions. They are in the order they are called. */ @@ -39,8 +46,7 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) revs->combine_merges = 1; } else if (!strcmp(arg, "--cc")) { revs->diff = 1; - revs->dense_combined_merges = 1; - revs->combine_merges = 1; + set_dense_combined(revs); } else if (!strcmp(arg, "--no-diff-merges")) { suppress(revs); } else if (!strcmp(arg, "--combined-all-paths")) { @@ -80,6 +86,12 @@ void diff_merges_default_to_dense_combined(struct rev_info *revs) } } +void diff_merges_set_dense_combined_if_unset(struct rev_info *revs) +{ + if (!revs->combine_merges) + set_dense_combined(revs); +} + void diff_merges_setup_revs(struct rev_info *revs) { if (revs->combine_merges && revs->ignore_merges < 0) diff --git a/diff-merges.h b/diff-merges.h index a031240576f7..f92de137d3a0 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -19,6 +19,8 @@ void diff_merges_default_to_first_parent(struct rev_info *revs); void diff_merges_default_to_dense_combined(struct rev_info *revs); +void diff_merges_set_dense_combined_if_unset(struct rev_info *revs); + void diff_merges_setup_revs(struct rev_info *revs); #endif From patchwork Mon Dec 21 15:19:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985147 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54CDAC433E6 for ; Mon, 21 Dec 2020 18:31:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2024822D49 for ; Mon, 21 Dec 2020 18:31:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726867AbgLUSbT (ORCPT ); Mon, 21 Dec 2020 13:31:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53022 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726514AbgLUSbT (ORCPT ); Mon, 21 Dec 2020 13:31:19 -0500 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A6FCDC061282 for ; Mon, 21 Dec 2020 10:30:38 -0800 (PST) Received: by mail-lf1-x12c.google.com with SMTP id x20so25913092lfe.12 for ; Mon, 21 Dec 2020 10:30:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zqcafpKHKxDK3E24G5BLPajTI0iF1/0C2lXgtKLMD60=; b=Dx2OeBIv4Bz9O/3ZV8+A3Z6a8tH9ufhzXi/qxyMpe4uqevSaJX2MbSIclL2t7gpfmG q7k9pi+bgDpJFTGbmfVqHquq7/EhJ6JhW3eTelX6tt3KkweDLg37QBFgRIsFSCUCTMvA bnpsxAK36ILuMP5yStac+8wFGOaU4n/oibSAohAohpc4lSZa4D3YDdX8tQ5DWclLwxIz uJeScIWuTbs8xBdqHZ4PfP3oS3dp825JpP9aASj8Vxv8cZwP9cq7IDDG7XciGMlKh/8T fSTaXl1vuGLVLlWNVgAwVd/Z/8P2xhrDXFv/9JHO+JkkzQvpoAu/BopHLv01MU/H2WKj g+Zg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zqcafpKHKxDK3E24G5BLPajTI0iF1/0C2lXgtKLMD60=; b=BDZ84ifkSub7gU5bkQiz0gVOv0Gov6m6yDxDLhEPUFLsa1eI/bFHAx0pLgjRUyDEIt zjxPxFVAIGRHnEcoATNwVFCuoF0z2uyQst6Izn0b4qMrMKmFbcjIBNB1wRvNgkeCCul0 69Z7lHzDohPMg59faDsOZL7kacwVifEilygzyko8BRm+G0HJFG40gBo4EVVblVw+OKKo wIAZeUQHvcugP7VkUeybfjuCSHiZzOi/43qRJ41YUMy0ujjRUmIjd+RKcs0KqyJvkfmw tDOvISXNA/AE98ZwAjUNK7yc8XiOEeF35QH+PVXrLIqVtMlyEoKZBnkxlTDxK5iEkRQx RGaw== X-Gm-Message-State: AOAM531cVtnSvFOsECvIruw65Ok8DR+wcysCqdxBSta0SRtZz8z4bkL8 KKPhi3FRaOxqLgCnvxsTfzpLFLg4msg= X-Google-Smtp-Source: ABdhPJwQfEJYYwkABv1EA25HbdwecXkai8XMM2hT+Cv3nATn2Xt18HA2SkojTTXqMQ2bgOTVBehmaw== X-Received: by 2002:a2e:50b:: with SMTP id 11mr7507022ljf.484.1608564047310; Mon, 21 Dec 2020 07:20:47 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:46 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 12/32] diff-merges: introduce revs->first_parent_merges flag Date: Mon, 21 Dec 2020 18:19:40 +0300 Message-Id: <20201221152000.13134-13-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org This new field allows us to separate format of diff for merges from 'first_parent_only' flag which primary purpose is limiting history traversal. This change further localizes diff format selection logic into the diff-merges.c file. Signed-off-by: Sergey Organov --- diff-merges.c | 2 ++ log-tree.c | 4 ++-- revision.h | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 24f922cf8a0f..fb591a933959 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -73,6 +73,8 @@ void diff_merges_default_to_first_parent(struct rev_info *revs) { if (revs->ignore_merges < 0) /* No -m */ revs->ignore_merges = 0; + if (!revs->combine_merges) /* No -c/--cc" */ + revs->first_parent_merges = 1; } void diff_merges_default_to_dense_combined(struct rev_info *revs) diff --git a/log-tree.c b/log-tree.c index 1927f917ce94..3fdc0fc64bfb 100644 --- a/log-tree.c +++ b/log-tree.c @@ -922,7 +922,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log return 0; else if (opt->combine_merges) return do_diff_combined(opt, commit); - else if (!opt->first_parent_only) { + else if (!opt->first_parent_merges) { /* If we show multiple diffs, show the parent info */ log->parent = parents->item; } @@ -941,7 +941,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log /* Set up the log info for the next parent, if any.. */ parents = parents->next; - if (!parents || opt->first_parent_only) + if (!parents || opt->first_parent_merges) break; log->parent = parents->item; opt->loginfo = log; diff --git a/revision.h b/revision.h index f6bf860d19e5..ba2aef79215e 100644 --- a/revision.h +++ b/revision.h @@ -194,6 +194,7 @@ struct rev_info { combine_merges:1, combined_all_paths:1, dense_combined_merges:1, + first_parent_merges:1, always_show_header:1; int ignore_merges:2; From patchwork Mon Dec 21 15:19:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985253 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 34689C433E0 for ; Mon, 21 Dec 2020 19:19:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0853222B37 for ; Mon, 21 Dec 2020 19:19:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726374AbgLUTTk (ORCPT ); Mon, 21 Dec 2020 14:19:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60676 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725946AbgLUTTk (ORCPT ); Mon, 21 Dec 2020 14:19:40 -0500 Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 550C8C0613D3 for ; Mon, 21 Dec 2020 11:18:59 -0800 (PST) Received: by mail-wr1-x42d.google.com with SMTP id w5so12215030wrm.11 for ; Mon, 21 Dec 2020 11:18:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=imDrSAsNzHV5mksQKaJIHb+0E2hP0/2Dc/6y4JoZwh0=; b=qR0aPY3pZq2YtJJBzf7Nhr5ZIO9z3RbUJzM9LM2DkwSnF9adXRo0z/gO/w/D6Hwp2A jUrtM/tm9JX0qUjJvRdMhOPDVJuRLGSSbiOhbfvh2ys5jGmYBz1nZ5gEHECtwVEeA8f2 cs3b9+pGH5XrgzKAZbVejwSWW/1YUQLxUoLjBzh2Txtz/aDdlVECFQ2bSaUV/oA+PN7d x7xAzSx0sliEGelnGoQw/6hljWcrMgHLatRESOzEt6mN9fFuKHgMHAwkivWQxivWOxPb f6YyCpW9wJhUVYObaJIYXapyeSfbnhqLQfaYFQBVQ0EghbRYI2Oa1b1dhQnX07bE2SPI U6dQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=imDrSAsNzHV5mksQKaJIHb+0E2hP0/2Dc/6y4JoZwh0=; b=NCVSCQPiGhtSeK3qp/fj2op/kmmv4rAAEDExXSFdnqr9S9fB1Z86dA6LTa/fTe8ZdY a9giVidMEPpQwgPy9K0Nm7zyjR/tvb20Sx2x3ZHaa5+zWnUZvtHkfFdDQOIeBGsD5KfD qYlpIYJ3Q9K7nGbFxDyxiF+aAzFyiUdRjZzC/Nn1fQlBAKesf0bemcwclUAG239mEzDd fd5pJP9pTlDvjtgLKCeGYp+c6n2Aru7ce+e7kdpPJocliFMdBhpdGCI1O/gl1TJyH/kF quX3dJLgLhDbfIJdrUwAKu7wpBd+7ljUi6Awekmk1ml4roZ0bXD7JvpymXH/kkViGBU5 /9Nw== X-Gm-Message-State: AOAM531AgwgFR2wCbrtRzgKyteHR2m5ynV9YYny59aXq6WpVFRDVvJjk 1AgxrqdUKLCD1r26GCdNeFRd/HpoVGM= X-Google-Smtp-Source: ABdhPJwWA6xO54QwpljXITgJ2crH0wbyJ12LXi2LIrCReWTWjA2akyvC9l5ipohRYZkITKDx9bVzOw== X-Received: by 2002:a2e:b889:: with SMTP id r9mr7230187ljp.44.1608564048783; Mon, 21 Dec 2020 07:20:48 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:47 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 13/32] diff-merges: handle imply -p on -c/--cc logic for log.c Date: Mon, 21 Dec 2020 18:19:41 +0300 Message-Id: <20201221152000.13134-14-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Move logic that handles implying -p on -c/--cc from log_setup_revisions_tweak() to diff_merges_setup_revs(), where it belongs. Signed-off-by: Sergey Organov --- builtin/log.c | 4 ---- diff-merges.c | 5 +++++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/builtin/log.c b/builtin/log.c index 63875c3aeec9..c3caf0955b2b 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -723,10 +723,6 @@ static void log_setup_revisions_tweak(struct rev_info *rev, rev->prune_data.nr == 1) rev->diffopt.flags.follow_renames = 1; - /* Turn --cc/-c into -p --cc/-c when -p was not given */ - if (!rev->diffopt.output_format && rev->combine_merges) - rev->diffopt.output_format = DIFF_FORMAT_PATCH; - if (rev->first_parent_only) diff_merges_default_to_first_parent(rev); } diff --git a/diff-merges.c b/diff-merges.c index fb591a933959..c48a65f8de64 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -102,4 +102,9 @@ void diff_merges_setup_revs(struct rev_info *revs) revs->ignore_merges = 1; if (revs->combined_all_paths && !revs->combine_merges) die("--combined-all-paths makes no sense without -c or --cc"); + if (revs->combine_merges) { + /* Turn --cc/-c into -p --cc/-c when -p was not given */ + if (!revs->diffopt.output_format) + revs->diffopt.output_format = DIFF_FORMAT_PATCH; + } } From patchwork Mon Dec 21 15:19:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985247 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 75D7CC433DB for ; Mon, 21 Dec 2020 19:16:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 47CF122ADF for ; Mon, 21 Dec 2020 19:16:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726012AbgLUTQW (ORCPT ); Mon, 21 Dec 2020 14:16:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60156 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725785AbgLUTQW (ORCPT ); Mon, 21 Dec 2020 14:16:22 -0500 Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BAE9BC0613D3 for ; Mon, 21 Dec 2020 11:15:41 -0800 (PST) Received: by mail-lf1-x136.google.com with SMTP id o17so26327818lfg.4 for ; Mon, 21 Dec 2020 11:15:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5GEYkQBVS1MSou2/MhE82uy49/ATzqXjRlMbDbpvqtM=; b=XhY1HwP7IDVuAAgU3iS9dWoGVLXcHDOJG3M9OogAOTd/PSx3J2d6XCoKvGPI8O+lYI rn9kbzfqfOEcuBhdw7jMtVcSQnvbrYhsuk7qvrsgJbvmaOD/y3GMxnPhLYWU5Qst36WR Hy6wOvSYv0WMvvHufG+LoM4pDv+K/Y0ks5US2b/oLtGxhbGQbqwNCfYww5U+xDPzQ/bJ OFCtp245zEsoSHEDoSmtzM4Sd68KpXw05FDRCPM6l7axtNUJ5m14Vl9tbscDMKiGYT2E IxouZD5RmsXpc0K3b9QUONTsQmzDmCzW9SCFXfcq5OrpHDp5Fkm6Ud/6sNak1EggVEHl UTIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5GEYkQBVS1MSou2/MhE82uy49/ATzqXjRlMbDbpvqtM=; b=b7+vNBUfWZ1SsjB/jRhQZVYPnm5AoNnYs/oJWPYx5mHWLN/9KnN+T/B8YcVw5NUVoj 80rhFmtpUH7jys1TsLybppUCEUu7Wwfb9+MpHoGMK5ndYE7gOPAPKa3YsuL+/9syu7Wj mfvWRXHcipyse+2C2ks0U+CBjPsmr0me9i13ana8ZGQBHZZ0ClSLCGME9r1AOHn8nQtb jy2UcAXz+CRFl8rJ9ZJsH5jvHy5XKZlW0+sykT1pGDlr15voTlk8SvIAeZu+XGzPCkHZ pXB6dfBZdBtDaY4QBUXHV6i/gPpSLAAtJCV/SRe+zLG1ajmidiDQQEse+q7PiDN0lIID pM0g== X-Gm-Message-State: AOAM533rTMGul+Z8/iawqt4r3roGodTbideRJoeghVGpPcuYQbeyFJmP ZPwJEzaglvQm2atY2Ny789Cds9f9lf0= X-Google-Smtp-Source: ABdhPJw0Egc5PKfNVwMBVI0SLy3WSvXRD7SSoiBVqKYhL4yu4ww509cj0fih8fBl4JWzNKTj9shNQQ== X-Received: by 2002:a2e:3503:: with SMTP id z3mr7955464ljz.74.1608564049844; Mon, 21 Dec 2020 07:20:49 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:49 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 14/32] diff-merges: revise revs->diff flag handling Date: Mon, 21 Dec 2020 18:19:42 +0300 Message-Id: <20201221152000.13134-15-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Do not set revs->diff when we encounter an option that needs it, as it'd be impossible to undo later. Besides, some other options than what we handle here set this flag as well, and we'd interfere with them trying to clear this flag later. Rather set revs->diff, if finally needed, in diff_merges_setup_revs(). As an additional bonus, this also makes our code shorter. Signed-off-by: Sergey Organov --- diff-merges.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index c48a65f8de64..225edd293b43 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -41,16 +41,13 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) revs->ignore_merges = 0; revs->match_missing = 1; } else if (!strcmp(arg, "-c")) { - revs->diff = 1; revs->dense_combined_merges = 0; revs->combine_merges = 1; } else if (!strcmp(arg, "--cc")) { - revs->diff = 1; set_dense_combined(revs); } else if (!strcmp(arg, "--no-diff-merges")) { suppress(revs); } else if (!strcmp(arg, "--combined-all-paths")) { - revs->diff = 1; revs->combined_all_paths = 1; } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { if (!strcmp(optarg, "off")) { @@ -103,6 +100,7 @@ void diff_merges_setup_revs(struct rev_info *revs) if (revs->combined_all_paths && !revs->combine_merges) die("--combined-all-paths makes no sense without -c or --cc"); if (revs->combine_merges) { + revs->diff = 1; /* Turn --cc/-c into -p --cc/-c when -p was not given */ if (!revs->diffopt.output_format) revs->diffopt.output_format = DIFF_FORMAT_PATCH; From patchwork Mon Dec 21 15:19:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985081 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5623BC433E9 for ; Mon, 21 Dec 2020 18:12:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 20A7223104 for ; Mon, 21 Dec 2020 18:12:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726615AbgLUSMk (ORCPT ); Mon, 21 Dec 2020 13:12:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50008 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726386AbgLUSMj (ORCPT ); Mon, 21 Dec 2020 13:12:39 -0500 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 72B87C061257 for ; Mon, 21 Dec 2020 10:11:55 -0800 (PST) Received: by mail-lf1-x12c.google.com with SMTP id o19so25936540lfo.1 for ; Mon, 21 Dec 2020 10:11:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iPZBgNe/CnnTJLkmODqda//1HtZVycy3DAT/Qha+4cE=; b=R2GdxwUKx1iSHWEYKeyUQZB++26QjOIo2eFU1iBdnV+T6abcaXKYJ7YNnjKhCoTuum iDfKAY7SRGgCRNk4V8Eyig2lURP6AgRFDMQNM8tMVDyEdPHQLVegkMkt08l2E8znQOGi JdKt2Pm4G6f8GqgAmMaJGr3ezT4B9sFIddA7tj9cYhFippTUMFsT7kw6rNK72Hbe4wef kQuq6mgN/KGPexw8sKGYDVmuqbs8P0YTjfg1mpupXfRClO34VhbIf31kpG8aIhZyUSQP woQD+0rJXgNjYGW7pXScHr5++A6KJvPLAlBDverkZ5EPhZVxWksABevKvnIT74OAFgkJ pVtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=iPZBgNe/CnnTJLkmODqda//1HtZVycy3DAT/Qha+4cE=; b=q/uEoIMSMfhZ0SN1E+onnzVJCE94+T8MXhD1BpQu4Fgbg5TPx3lvV5fC4m54KZWn78 +K7XGjvUaIoxsBe3EX+u+DehZNT10yDlqG1ZdVOG++ewEKbTmOcu3gQf4PnznViMg8pL /5i2WyUujdpkH6WPbNfTL+Bv4/3M5uRWHiSvXVvOyZL7V8L5OSQ0nk1+p1zgYcY4FYPc NZtWj9l/GFf12y0dSi3ij75a8n6UGObajGbU8HO54Nt9b2mS4INc0QNxf8JTnc4o/oRL /Eyha8F4UkN5kh2h9d74MlNYx7u3fKJBmf46j/I00gpf/O3XjdLEWERh7amfjvFe7HuJ sOqw== X-Gm-Message-State: AOAM530G1yRPVne+22E5GCaU4GxtlnxMdpPPKaYm5uUNH+/OXzo+9S6k DYhwbG4TQEOyr9Pn5hSae6CIm66tXwk= X-Google-Smtp-Source: ABdhPJzVe9eo/p2lL5ZOo7jXtBl9F/CECCva2UTKrXwYPWNT/GIsk44mgBPgjWxCFMHsrF3m+3aOaw== X-Received: by 2002:a2e:9906:: with SMTP id v6mr7876978lji.361.1608564051137; Mon, 21 Dec 2020 07:20:51 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:50 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 15/32] t4013: support test_expect_failure through ':failure' magic Date: Mon, 21 Dec 2020 18:19:43 +0300 Message-Id: <20201221152000.13134-16-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Add support to be able to specify expected failure, through :failure magic, like this: :failure cmd args Signed-off-by: Sergey Organov --- t/t4013-diff-various.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh index 5c7b0122b4f1..935d10ac0572 100755 --- a/t/t4013-diff-various.sh +++ b/t/t4013-diff-various.sh @@ -174,6 +174,7 @@ process_diffs () { V=$(git version | sed -e 's/^git version //' -e 's/\./\\./g') while read magic cmd do + status=success case "$magic" in '' | '#'*) continue ;; @@ -182,6 +183,10 @@ do label="$magic-$cmd" case "$magic" in noellipses) ;; + failure) + status=failure + magic= + label="$cmd" ;; *) BUG "unknown magic $magic" ;; esac ;; @@ -194,7 +199,7 @@ do expect="$TEST_DIRECTORY/t4013/diff.$test" actual="$pfx-diff.$test" - test_expect_success "git $cmd # magic is ${magic:-(not used)}" ' + test_expect_$status "git $cmd # magic is ${magic:-(not used)}" ' { echo "$ git $cmd" case "$magic" in From patchwork Mon Dec 21 15:19:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985235 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79CDBC433E6 for ; Mon, 21 Dec 2020 19:13:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3D0A7229C5 for ; Mon, 21 Dec 2020 19:13:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726502AbgLUTNA (ORCPT ); Mon, 21 Dec 2020 14:13:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726232AbgLUTNA (ORCPT ); Mon, 21 Dec 2020 14:13:00 -0500 Received: from mail-wr1-x430.google.com (mail-wr1-x430.google.com [IPv6:2a00:1450:4864:20::430]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B3AFEC0613D3 for ; Mon, 21 Dec 2020 11:12:19 -0800 (PST) Received: by mail-wr1-x430.google.com with SMTP id q18so12231605wrn.1 for ; Mon, 21 Dec 2020 11:12:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OKn1seWiuDxvDzpbdQ3cyCw4XIrHg3bGLKppLhoSqI0=; b=aMYsC4stopwZdB/pgz2rSabzw6+4+MKE8LIVqB/yPjfEdXU/n2BaTJWLpRBoKhwjIC Tjn/Xg47UTma24NPG7CZpzPC+kr8WUEA9zONwEIRypnLPZwwGBO69FjfjeT1XinhEBMW gor1Ce8Li0TAepzVJwaD0qFLk1odVg6Nbc6lJpI0za18nfEh7v+88a80zMMN5eIfG8zk fCX501Lt5UJA4QAFzykiH7c2d+gyBVg3qgcyxoxspaMpQDTmA2t0J3EOJabMCJncKofo LGHkghUaZKP3pPChQwjV48iLl4FCmXhNFlpNmm4yTwPqRmHYIIT8ACvmW7LQSdVh1Phr raKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=OKn1seWiuDxvDzpbdQ3cyCw4XIrHg3bGLKppLhoSqI0=; b=gldUVHah6I9m4QM8U6Q7YJ/BuSVgz420KOLN7FHKLl2apDAOkKEhrdC4Ah+t8eVVH4 EM+yrcEPIBXz4fOl9dZJw2ZsLYeR3abQKeK8gSMzHlx0DvdSIhgVLUH1Yk6xwL8wFJHK Jr1qAEuZ3lEKdtqg1iOjPuKwP6zwHIC4WCL/PRZLMTl5t2FwnGe+S/xWjH9uNK57pyf3 odT4M9VVT6LFXHUti4vxllDcLSlRaQWqFA91yeUJ0erlfbFgHU0lWGBGHkHtqjGywxpI FUVfU3Fo61wlvNwC0b44egkBWsI95G638eksoQZEnjoPC0HbsVCGBZv2+iftduhGMpX4 CAIQ== X-Gm-Message-State: AOAM531IgESVZloVbyMhxpemVV9Rpj2iT9AacBvdwgSSfHKmCk+3Vocn hNB/at15xvoOPQpF6K77t2aEJNWW9Uw= X-Google-Smtp-Source: ABdhPJyt99uWK9PYezTo/ygKXeLo+5CBe6VGi+vGkXtlY/dCk5DLmdY+hqgp/Xnr1libztVO1luuyg== X-Received: by 2002:a2e:b1d4:: with SMTP id e20mr7315351lja.304.1608564052206; Mon, 21 Dec 2020 07:20:52 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:51 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 16/32] t4013: add tests for -m failing to override -c/--cc Date: Mon, 21 Dec 2020 18:19:44 +0300 Message-Id: <20201221152000.13134-17-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Logically, -m, -c, --cc specify 3 different formats for representing merge commits, yet -m doesn't in fact override -c or --cc, that makes no sense. Add 2 expected to fail tests that demonstrate the problem. Signed-off-by: Sergey Organov --- t/t4013-diff-various.sh | 2 + t/t4013/diff.log_--cc_-m_-p_master | 200 +++++++++++++++++++++++++++++ t/t4013/diff.log_-c_-m_-p_master | 200 +++++++++++++++++++++++++++++ 3 files changed, 402 insertions(+) create mode 100644 t/t4013/diff.log_--cc_-m_-p_master create mode 100644 t/t4013/diff.log_-c_-m_-p_master diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh index 935d10ac0572..64d9fce44614 100755 --- a/t/t4013-diff-various.sh +++ b/t/t4013-diff-various.sh @@ -329,6 +329,8 @@ log --first-parent --diff-merges=off -p master log -p --first-parent master log -m -p --first-parent master log -m -p master +:failure log --cc -m -p master +:failure log -c -m -p master log -SF master log -S F master log -SF -p master diff --git a/t/t4013/diff.log_--cc_-m_-p_master b/t/t4013/diff.log_--cc_-m_-p_master new file mode 100644 index 000000000000..7c217cf348c7 --- /dev/null +++ b/t/t4013/diff.log_--cc_-m_-p_master @@ -0,0 +1,200 @@ +$ git log --cc -m -p master +commit 59d314ad6f356dd08601a4cd5e530381da3e3c64 (from 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0) +Merge: 9a6d494 c7a2ab9 +Author: A U Thor +Date: Mon Jun 26 00:04:00 2006 +0000 + + Merge branch 'side' + +diff --git a/dir/sub b/dir/sub +index cead32e..992913c 100644 +--- a/dir/sub ++++ b/dir/sub +@@ -4,3 +4,5 @@ C + D + E + F ++1 ++2 +diff --git a/file0 b/file0 +index b414108..10a8a9f 100644 +--- a/file0 ++++ b/file0 +@@ -4,3 +4,6 @@ + 4 + 5 + 6 ++A ++B ++C + +commit 59d314ad6f356dd08601a4cd5e530381da3e3c64 (from c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a) +Merge: 9a6d494 c7a2ab9 +Author: A U Thor +Date: Mon Jun 26 00:04:00 2006 +0000 + + Merge branch 'side' + +diff --git a/dir/sub b/dir/sub +index 7289e35..992913c 100644 +--- a/dir/sub ++++ b/dir/sub +@@ -1,4 +1,8 @@ + A + B ++C ++D ++E ++F + 1 + 2 +diff --git a/file0 b/file0 +index f4615da..10a8a9f 100644 +--- a/file0 ++++ b/file0 +@@ -1,6 +1,9 @@ + 1 + 2 + 3 ++4 ++5 ++6 + A + B + C +diff --git a/file1 b/file1 +new file mode 100644 +index 0000000..b1e6722 +--- /dev/null ++++ b/file1 +@@ -0,0 +1,3 @@ ++A ++B ++C +diff --git a/file2 b/file2 +deleted file mode 100644 +index 01e79c3..0000000 +--- a/file2 ++++ /dev/null +@@ -1,3 +0,0 @@ +-1 +-2 +-3 +diff --git a/file3 b/file3 +deleted file mode 100644 +index 7289e35..0000000 +--- a/file3 ++++ /dev/null +@@ -1,4 +0,0 @@ +-A +-B +-1 +-2 + +commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a +Author: A U Thor +Date: Mon Jun 26 00:03:00 2006 +0000 + + Side + +diff --git a/dir/sub b/dir/sub +index 35d242b..7289e35 100644 +--- a/dir/sub ++++ b/dir/sub +@@ -1,2 +1,4 @@ + A + B ++1 ++2 +diff --git a/file0 b/file0 +index 01e79c3..f4615da 100644 +--- a/file0 ++++ b/file0 +@@ -1,3 +1,6 @@ + 1 + 2 + 3 ++A ++B ++C +diff --git a/file3 b/file3 +new file mode 100644 +index 0000000..7289e35 +--- /dev/null ++++ b/file3 +@@ -0,0 +1,4 @@ ++A ++B ++1 ++2 + +commit 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0 +Author: A U Thor +Date: Mon Jun 26 00:02:00 2006 +0000 + + Third + +diff --git a/dir/sub b/dir/sub +index 8422d40..cead32e 100644 +--- a/dir/sub ++++ b/dir/sub +@@ -2,3 +2,5 @@ A + B + C + D ++E ++F +diff --git a/file1 b/file1 +new file mode 100644 +index 0000000..b1e6722 +--- /dev/null ++++ b/file1 +@@ -0,0 +1,3 @@ ++A ++B ++C + +commit 1bde4ae5f36c8d9abe3a0fce0c6aab3c4a12fe44 +Author: A U Thor +Date: Mon Jun 26 00:01:00 2006 +0000 + + Second + + This is the second commit. + +diff --git a/dir/sub b/dir/sub +index 35d242b..8422d40 100644 +--- a/dir/sub ++++ b/dir/sub +@@ -1,2 +1,4 @@ + A + B ++C ++D +diff --git a/file0 b/file0 +index 01e79c3..b414108 100644 +--- a/file0 ++++ b/file0 +@@ -1,3 +1,6 @@ + 1 + 2 + 3 ++4 ++5 ++6 +diff --git a/file2 b/file2 +deleted file mode 100644 +index 01e79c3..0000000 +--- a/file2 ++++ /dev/null +@@ -1,3 +0,0 @@ +-1 +-2 +-3 + +commit 444ac553ac7612cc88969031b02b3767fb8a353a +Author: A U Thor +Date: Mon Jun 26 00:00:00 2006 +0000 + + Initial +$ diff --git a/t/t4013/diff.log_-c_-m_-p_master b/t/t4013/diff.log_-c_-m_-p_master new file mode 100644 index 000000000000..b660f3d5f28e --- /dev/null +++ b/t/t4013/diff.log_-c_-m_-p_master @@ -0,0 +1,200 @@ +$ git log -c -m -p master +commit 59d314ad6f356dd08601a4cd5e530381da3e3c64 (from 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0) +Merge: 9a6d494 c7a2ab9 +Author: A U Thor +Date: Mon Jun 26 00:04:00 2006 +0000 + + Merge branch 'side' + +diff --git a/dir/sub b/dir/sub +index cead32e..992913c 100644 +--- a/dir/sub ++++ b/dir/sub +@@ -4,3 +4,5 @@ C + D + E + F ++1 ++2 +diff --git a/file0 b/file0 +index b414108..10a8a9f 100644 +--- a/file0 ++++ b/file0 +@@ -4,3 +4,6 @@ + 4 + 5 + 6 ++A ++B ++C + +commit 59d314ad6f356dd08601a4cd5e530381da3e3c64 (from c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a) +Merge: 9a6d494 c7a2ab9 +Author: A U Thor +Date: Mon Jun 26 00:04:00 2006 +0000 + + Merge branch 'side' + +diff --git a/dir/sub b/dir/sub +index 7289e35..992913c 100644 +--- a/dir/sub ++++ b/dir/sub +@@ -1,4 +1,8 @@ + A + B ++C ++D ++E ++F + 1 + 2 +diff --git a/file0 b/file0 +index f4615da..10a8a9f 100644 +--- a/file0 ++++ b/file0 +@@ -1,6 +1,9 @@ + 1 + 2 + 3 ++4 ++5 ++6 + A + B + C +diff --git a/file1 b/file1 +new file mode 100644 +index 0000000..b1e6722 +--- /dev/null ++++ b/file1 +@@ -0,0 +1,3 @@ ++A ++B ++C +diff --git a/file2 b/file2 +deleted file mode 100644 +index 01e79c3..0000000 +--- a/file2 ++++ /dev/null +@@ -1,3 +0,0 @@ +-1 +-2 +-3 +diff --git a/file3 b/file3 +deleted file mode 100644 +index 7289e35..0000000 +--- a/file3 ++++ /dev/null +@@ -1,4 +0,0 @@ +-A +-B +-1 +-2 + +commit c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a +Author: A U Thor +Date: Mon Jun 26 00:03:00 2006 +0000 + + Side + +diff --git a/dir/sub b/dir/sub +index 35d242b..7289e35 100644 +--- a/dir/sub ++++ b/dir/sub +@@ -1,2 +1,4 @@ + A + B ++1 ++2 +diff --git a/file0 b/file0 +index 01e79c3..f4615da 100644 +--- a/file0 ++++ b/file0 +@@ -1,3 +1,6 @@ + 1 + 2 + 3 ++A ++B ++C +diff --git a/file3 b/file3 +new file mode 100644 +index 0000000..7289e35 +--- /dev/null ++++ b/file3 +@@ -0,0 +1,4 @@ ++A ++B ++1 ++2 + +commit 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0 +Author: A U Thor +Date: Mon Jun 26 00:02:00 2006 +0000 + + Third + +diff --git a/dir/sub b/dir/sub +index 8422d40..cead32e 100644 +--- a/dir/sub ++++ b/dir/sub +@@ -2,3 +2,5 @@ A + B + C + D ++E ++F +diff --git a/file1 b/file1 +new file mode 100644 +index 0000000..b1e6722 +--- /dev/null ++++ b/file1 +@@ -0,0 +1,3 @@ ++A ++B ++C + +commit 1bde4ae5f36c8d9abe3a0fce0c6aab3c4a12fe44 +Author: A U Thor +Date: Mon Jun 26 00:01:00 2006 +0000 + + Second + + This is the second commit. + +diff --git a/dir/sub b/dir/sub +index 35d242b..8422d40 100644 +--- a/dir/sub ++++ b/dir/sub +@@ -1,2 +1,4 @@ + A + B ++C ++D +diff --git a/file0 b/file0 +index 01e79c3..b414108 100644 +--- a/file0 ++++ b/file0 +@@ -1,3 +1,6 @@ + 1 + 2 + 3 ++4 ++5 ++6 +diff --git a/file2 b/file2 +deleted file mode 100644 +index 01e79c3..0000000 +--- a/file2 ++++ /dev/null +@@ -1,3 +0,0 @@ +-1 +-2 +-3 + +commit 444ac553ac7612cc88969031b02b3767fb8a353a +Author: A U Thor +Date: Mon Jun 26 00:00:00 2006 +0000 + + Initial +$ From patchwork Mon Dec 21 15:19:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985079 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A1796C433DB for ; Mon, 21 Dec 2020 18:11:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 710D422D49 for ; Mon, 21 Dec 2020 18:11:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726540AbgLUSLU (ORCPT ); Mon, 21 Dec 2020 13:11:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49788 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725881AbgLUSLT (ORCPT ); Mon, 21 Dec 2020 13:11:19 -0500 Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 424ABC0613D3 for ; Mon, 21 Dec 2020 10:10:39 -0800 (PST) Received: by mail-ej1-x62d.google.com with SMTP id x16so14697129ejj.7 for ; Mon, 21 Dec 2020 10:10:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=cAXip+sVDPuQwqmm2d5Ra7BHOOby8RQkWsnWSW1kVKE=; b=Nsutx+oLpenmJ2aXS7cWknHE134P2713YxlYoBGF7aNwwt6c0Cn+dyPwcBo4bJkf10 6H3TxSiJAUUkfCLEqb1uk2hxP7U98zicvNnxX4qY7MTPz4odxkfyhvovCrfbiQql2Ksr xYYZuv0GA03LkqTw+OXRO9DG8gF71goA3ychgpWyY3cEgYqSD4zx4GiDFshcuJjEzHmY 5U3d679v3V42o4qP5x49J/qw6xKMJb1SLAc/gMeuXOiWV5SQh4JSxHJtdHGAmJygGm5k VVBC5U0Z0VapcK0gVAAh1Xg+/XN8XEOJt1r7/U9lAbNJn0J3cgx4VhI3Yp0jYMSOZ/GV Yu9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=cAXip+sVDPuQwqmm2d5Ra7BHOOby8RQkWsnWSW1kVKE=; b=W8TnUzOqNh1OXbBTKbOLhTeYuCVH9v255YWEd5nNC4st/hBLRVSvsyRMizkcpPdBDV 9ynInz7sZFP3E8nxSnkkxasktqKrmQEv8DsRN1UUDCkzdlZ3icA4i0ZmpTxEAUNGFNVy MplT1wMT5TDbdYFtHqSucg6uVtMZNexN3Q3lzlsNCVIVMRlhrfLOMRIdJN28msb5k+K6 0L0DNuJgHfeogI+0UVckKIWbxIXkelM4/oGpMeHRJ9EDHm1qh6XrI6uqQ+H3BKmPj430 mlGLPXGLkVsMW5kXfwP+SKD25jocIEvM455AaAj9dwnitWUjhJj/s8p3QpOpozIZ/lj/ T9nA== X-Gm-Message-State: AOAM5308b7x5qI92EApvBNXCnNxugoSXWxx3KMdObU3SlDeKbFpH4aLz +DHaHYIr+Rac1cTKInfW2Sk99tvFI3c= X-Google-Smtp-Source: ABdhPJwgs1RQCLV+jllFSNAFOPoHLOvb2wWaoSRTBh9K+3MQpE+cFRl3Qp/i7eMPAd73fIHrZYl2KQ== X-Received: by 2002:a19:c3cb:: with SMTP id t194mr6450061lff.599.1608564053184; Mon, 21 Dec 2020 07:20:53 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:52 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 17/32] diff-merges: fix -m to properly override -c/--cc Date: Mon, 21 Dec 2020 18:19:45 +0300 Message-Id: <20201221152000.13134-18-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Logically, -m, -c, --cc specify 3 different formats for representing merge commits, yet -m doesn't in fact override -c or --cc, that makes no sense. Fix -m to properly override -c/--cc, and change the tests accordingly. Signed-off-by: Sergey Organov --- diff-merges.c | 1 + t/t4013-diff-various.sh | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 225edd293b43..047bf81e6777 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -33,6 +33,7 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) const char *arg = argv[0]; if (!strcmp(arg, "-m")) { + suppress(revs); /* * To "diff-index", "-m" means "match missing", and to the "log" * family of commands, it means "show full diff for merges". Set diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh index 64d9fce44614..8d8178a8a616 100755 --- a/t/t4013-diff-various.sh +++ b/t/t4013-diff-various.sh @@ -329,8 +329,8 @@ log --first-parent --diff-merges=off -p master log -p --first-parent master log -m -p --first-parent master log -m -p master -:failure log --cc -m -p master -:failure log -c -m -p master +log --cc -m -p master +log -c -m -p master log -SF master log -S F master log -SF -p master From patchwork Mon Dec 21 15:19:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985071 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0194FC433E0 for ; Mon, 21 Dec 2020 18:09:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A60B722D08 for ; Mon, 21 Dec 2020 18:09:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726480AbgLUSJQ (ORCPT ); Mon, 21 Dec 2020 13:09:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49446 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726336AbgLUSJP (ORCPT ); Mon, 21 Dec 2020 13:09:15 -0500 Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 05110C0613D6 for ; Mon, 21 Dec 2020 10:08:35 -0800 (PST) Received: by mail-ed1-x52d.google.com with SMTP id u19so10470443edx.2 for ; Mon, 21 Dec 2020 10:08:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=rCg+5kbzmz51UX6bsWImblE4lls6ZuhM0R+PAqA8Wl8=; b=X2/+hNUE2K8wLHWAzQCuuZK1pX7EG4uAjDRmC4M4VgVbfhAYO4qQCKwAIXiHSEFIJh QUKeij3Py9pKWY29ahD7ZbO5EaAZzE63HZYKZWwUEqvjVv1setoghs3CDdrKLITcs6GT rTad8uEXpJ6yvue52qu6igCqZ+1CbjqqzNRfC/w2UnCkGLnfI4csSNKpY4AQjt1ZZF+b nbzTNRfF1w/dPVcAGD25ya37K4BEGLMthx8WwQykt8/CdsdGgjbyv9PzLDYqQHJCjuPg LW69c2I7uOjkGKaePe2Rh1WwZxqLhkr6ldDB2a40UIJ9T6wmKAkc5oWJfjniCk9XODKp A/Dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=rCg+5kbzmz51UX6bsWImblE4lls6ZuhM0R+PAqA8Wl8=; b=jcUxZfu9U2uae7ceabDfZ0uUpQqxWuKVU1MCi0OXXgEoG6cfkzCbmNGZRmIjuEcD1Y 7ZhrB1LtmY2rV1Bs5eYJg/w8EV2e6tfHYQDj3m3zwX+lzVTeBeHAEmSMDS5CvIUXjX2F 8CjYorJWPgX2/sqRO1NzEfynCyFEPtQpXVcsNYo4sCYiNV9mRQ2efxps255bsJIakZ3d wnDA9i9d832wZk18ekq2sVisKVnaQ9VVROJ1vR58yT9zpKjkHuTQS4EzGXo3gzva+iAH t6lXsBpiABhqwFSHm9Y7Uy+epAVyAocivKHBU29cPs16XzLx8nbgj/soSAWhdIMAV36a +GlQ== X-Gm-Message-State: AOAM532tTrhXK/hpIESFCfrZpzLJGMo7HdsxznUWDdRdTGnBV8b+2Q8E SttaGiFfhGHmd6hQ1ML3UVCaNvLiMRA= X-Google-Smtp-Source: ABdhPJx9zK6Gu6cEjBVnb06+d7hdiL0pLKmw4aCwcV3ShwTy78p39gPD2V7AtgsQ2Rn9Ghmn7Dsl5w== X-Received: by 2002:a2e:98ca:: with SMTP id s10mr7192119ljj.417.1608564054253; Mon, 21 Dec 2020 07:20:54 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:53 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 18/32] diff-merges: split 'ignore_merges' field Date: Mon, 21 Dec 2020 18:19:46 +0300 Message-Id: <20201221152000.13134-19-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org 'ignore_merges' was 3-way field that served two distinct purposes that we now assign to 2 new independent flags: 'separate_merges', and 'explicit_diff_merges'. 'separate_merges' tells that we need to output diff format containing separate diff for every parent (as opposed to 'combine_merges'). 'explicit_diff_merges' tells that at least one of diff-merges options has been explicitly specified on the command line, so no defaults should apply. Signed-off-by: Sergey Organov --- diff-merges.c | 31 +++++++++++++------------------ log-tree.c | 15 ++++++++------- revision.h | 3 ++- 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 047bf81e6777..eff54cca8287 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -4,7 +4,7 @@ static void suppress(struct rev_info *revs) { - revs->ignore_merges = 1; + revs->separate_merges = 0; revs->first_parent_merges = 0; revs->combine_merges = 0; revs->dense_combined_merges = 0; @@ -23,7 +23,6 @@ static void set_dense_combined(struct rev_info *revs) void diff_merges_init_revs(struct rev_info *revs) { - revs->ignore_merges = -1; } int diff_merges_parse_opts(struct rev_info *revs, const char **argv) @@ -39,7 +38,7 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) * family of commands, it means "show full diff for merges". Set * both fields appropriately. */ - revs->ignore_merges = 0; + revs->separate_merges = 1; revs->match_missing = 1; } else if (!strcmp(arg, "-c")) { revs->dense_combined_merges = 0; @@ -57,8 +56,9 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) die(_("unknown value for --diff-merges: %s"), optarg); } } else - argcount = 0; + return 0; + revs->explicit_diff_merges = 1; return argcount; } @@ -69,21 +69,16 @@ void diff_merges_suppress(struct rev_info *revs) void diff_merges_default_to_first_parent(struct rev_info *revs) { - if (revs->ignore_merges < 0) /* No -m */ - revs->ignore_merges = 0; - if (!revs->combine_merges) /* No -c/--cc" */ + if (!revs->explicit_diff_merges) + revs->separate_merges = 1; + if (revs->separate_merges) revs->first_parent_merges = 1; } void diff_merges_default_to_dense_combined(struct rev_info *revs) { - if (revs->ignore_merges < 0) { /* No -m */ - revs->ignore_merges = 0; - if (!revs->combine_merges) { /* No -c/--cc" */ - revs->combine_merges = 1; - revs->dense_combined_merges = 1; - } - } + if (!revs->explicit_diff_merges) + set_dense_combined(revs); } void diff_merges_set_dense_combined_if_unset(struct rev_info *revs) @@ -94,10 +89,10 @@ void diff_merges_set_dense_combined_if_unset(struct rev_info *revs) void diff_merges_setup_revs(struct rev_info *revs) { - if (revs->combine_merges && revs->ignore_merges < 0) - revs->ignore_merges = 0; - if (revs->ignore_merges < 0) - revs->ignore_merges = 1; + if (revs->combine_merges == 0) + revs->dense_combined_merges = 0; + if (revs->separate_merges == 0) + revs->first_parent_merges = 0; if (revs->combined_all_paths && !revs->combine_merges) die("--combined-all-paths makes no sense without -c or --cc"); if (revs->combine_merges) { diff --git a/log-tree.c b/log-tree.c index 3fdc0fc64bfb..f9385b1dae6f 100644 --- a/log-tree.c +++ b/log-tree.c @@ -918,14 +918,15 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log /* More than one parent? */ if (parents->next) { - if (opt->ignore_merges) - return 0; - else if (opt->combine_merges) + if (opt->combine_merges) return do_diff_combined(opt, commit); - else if (!opt->first_parent_merges) { - /* If we show multiple diffs, show the parent info */ - log->parent = parents->item; - } + if (opt->separate_merges) { + if (!opt->first_parent_merges) { + /* Show parent info for multiple diffs */ + log->parent = parents->item; + } + } else + return 0; } showed_log = 0; diff --git a/revision.h b/revision.h index ba2aef79215e..fcc532c873d1 100644 --- a/revision.h +++ b/revision.h @@ -191,12 +191,13 @@ struct rev_info { match_missing:1, no_commit_id:1, verbose_header:1, + explicit_diff_merges: 1, + separate_merges: 1, combine_merges:1, combined_all_paths:1, dense_combined_merges:1, first_parent_merges:1, always_show_header:1; - int ignore_merges:2; /* Format info */ int show_notes; From patchwork Mon Dec 21 15:19:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985085 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1B5A9C433E0 for ; Mon, 21 Dec 2020 18:13:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CE7B222D08 for ; Mon, 21 Dec 2020 18:13:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725870AbgLUSN1 (ORCPT ); Mon, 21 Dec 2020 13:13:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50132 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725785AbgLUSN0 (ORCPT ); Mon, 21 Dec 2020 13:13:26 -0500 Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4635BC061282 for ; Mon, 21 Dec 2020 10:12:46 -0800 (PST) Received: by mail-lf1-x136.google.com with SMTP id a12so25876242lfl.6 for ; Mon, 21 Dec 2020 10:12:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0W3us1d0G5MzwFNR/Pz+9/j1tIqVyxQx+lyRwVD3uME=; b=vDucMYrBV7S3HpVjxBQOrhxJBxqOq0cj5ZliC3tVc40WhFKnec2NEaTCi5Wfg0LVE/ nkvH1n6C5nqiACB3AQaiQK60Q60vYqzBUW1XdAqu717MpGwEEFStf0dauVE/yemtoo2I SIInEi5AQPW/ScEZqZxMuYjBkmDh5T2O4bz+S4xQKTcwcrfe0NlLdSVrlJ4xOnoC4QG/ ouSG634AA0z6YG9N9tHDLLyDowWrbOzVJLAOqutkNLasQIRUm6wfVtOgbDNQrdsTQowN Y6LedksDmaqPEdv+kU9Rma8n9bhj773v9jpBRxeanDZ4FFQjIGOSrI/IXaAAxInkQh00 Xiuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0W3us1d0G5MzwFNR/Pz+9/j1tIqVyxQx+lyRwVD3uME=; b=Bffj5OQeM1235H5UcYb7jbrhu8ciwui9h0s9NJ49GLOCWIk1rLvu43rBewrKvN1Rx3 3QlX5may9s8ulwlwduoU4WErLE9oxFvpXe+cnfdvXC6KlJd2Qq/Qnb4iD4KFSED036B8 ZYP/1QbER/A3z5dFdyWzzO217AG1E73rDwfmVf0jX0tICUJudQgziG1Dvmy1N7lP0tER rxGzQxFZTUZFhir4J+MksA7FCTxtLrnvid4Dtemrq3V84pq5pRJfriGI13bU/+N85ab2 zd2MYCgp6QLUVcBSYTfYlQqwfrVMDyYRF0l/2HsvpZEG5YSyAfKzsVpEwVa9HO8Fklgm C9kw== X-Gm-Message-State: AOAM533AR+MAP4UX688/awT7r3Ueq699P5rr/TANlqEhPOeHJobtVXqR VwnzVP7wMeSbCdAdidLquSRIhdFNLMw= X-Google-Smtp-Source: ABdhPJyrpCtK8cHXoSMMJ/MxhAo719bp5H0QQ0/xkhDbdQ4NN1QgDFSqZth8QyKYsFb0rEHyx4t7mA== X-Received: by 2002:ac2:4f86:: with SMTP id z6mr6363470lfs.368.1608564055357; Mon, 21 Dec 2020 07:20:55 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:54 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 19/32] diff-merges: group diff-merge flags next to each other inside 'rev_info' Date: Mon, 21 Dec 2020 18:19:47 +0300 Message-Id: <20201221152000.13134-20-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org The relevant flags were somewhat scattered over definition of 'struct rev_info'. Rearrange them to group them together. Signed-off-by: Sergey Organov --- revision.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/revision.h b/revision.h index fcc532c873d1..dcfa14454a55 100644 --- a/revision.h +++ b/revision.h @@ -191,13 +191,14 @@ struct rev_info { match_missing:1, no_commit_id:1, verbose_header:1, + always_show_header:1, + /* Diff-merge flags */ explicit_diff_merges: 1, separate_merges: 1, combine_merges:1, combined_all_paths:1, dense_combined_merges:1, - first_parent_merges:1, - always_show_header:1; + first_parent_merges:1; /* Format info */ int show_notes; From patchwork Mon Dec 21 15:19:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985087 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00A42C433E9 for ; Mon, 21 Dec 2020 18:13:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AEDB7230FC for ; Mon, 21 Dec 2020 18:13:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726181AbgLUSNU (ORCPT ); Mon, 21 Dec 2020 13:13:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50114 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726144AbgLUSNU (ORCPT ); Mon, 21 Dec 2020 13:13:20 -0500 Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 916B2C061793 for ; Mon, 21 Dec 2020 10:12:39 -0800 (PST) Received: by mail-ej1-x630.google.com with SMTP id ce23so14700821ejb.8 for ; Mon, 21 Dec 2020 10:12:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TBQfAvQHFoAwnp3CaECXiSS6MZvFWi5N71SL0nb3uxs=; b=HQZuAF7Pb9BHXAULn0A7AbXRQmGx7+HB+7JXZQF+VJFQps7XK5zlWwe19rArtyHklb sxoKdvDhhUzG/NuBrrC+UiqRWS69XmUgu2NkLDmgHTr1ZPsrQad7u/3HP2goL/dlR1fv ZIJtEJ9k/uDK4mVgTLfsuUPI0I/SIj01b1/A3RmqeqylhMWt6Hc5Bvr2tqah6wWThjWv URncfe3w8BbDtouR+YuEy416oC6tTPf5Op3koim/duFiRwOm3qK3MTmR7VlHrL3Bdm7r M1pL+bHZXF9c85yne1LMOKGlsMgzGLywHqDdZfJXgrUOsr+ssCTRXqrmNEX60MeFI+06 Lp4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TBQfAvQHFoAwnp3CaECXiSS6MZvFWi5N71SL0nb3uxs=; b=LzdKUD1uj+zPvzfnffL9Nlz0v9tDnltVhXM9JFCO75OZidpjrkx3Q5ug33R58Dn/4Q MYueCW63NxUsCpsdPbEet9wDYXjLPALvf3Oq9GxDsdBv+hJYKYylX/b8ne/c38PtxZFA NJWPSJP+Ed3UWlA40ZfY5dEMWKZXCSDAeetQ1FOpHrxpCJNOsnoDRfRqzUp2xGlszkui TGSKaOzi5vZeD+q3mp7kXTF84xQvfzmcWfCLOEwrLy4042Tz+XW2Q07sxPeJ9e0RzS0y deGv+LHa7j8LIeorKY9HRY8QJLAE5hfvnABpxRSrYjVThtvvMbiIg+RZMSUIifmqtGDq gE1Q== X-Gm-Message-State: AOAM5324iGN6ZHZ2g/Ojw8WmdaMeStWQSGlfFoZQp+eblg92sL+tueV2 fUJe3vcSJKP4fJ95gFQ51Op7jBpzflU= X-Google-Smtp-Source: ABdhPJwcE0jkThJP//opD6am1NEITIKY7CQ9Z5Kkr+XJPH7ert6Ladrh9ALaFfJUY3ixYOSHkoBCpw== X-Received: by 2002:a19:4813:: with SMTP id v19mr7165221lfa.655.1608564056348; Mon, 21 Dec 2020 07:20:56 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:55 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 20/32] diff-merges: get rid of now empty diff_merges_init_revs() Date: Mon, 21 Dec 2020 18:19:48 +0300 Message-Id: <20201221152000.13134-21-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org After getting rid of 'ignore_merges' field, the diff_merges_init_revs() function became empty. Get rid of it. Signed-off-by: Sergey Organov --- diff-merges.c | 4 ---- diff-merges.h | 2 -- revision.c | 1 - 3 files changed, 7 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index eff54cca8287..34d7ed7c70b7 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -21,10 +21,6 @@ static void set_dense_combined(struct rev_info *revs) * Public functions. They are in the order they are called. */ -void diff_merges_init_revs(struct rev_info *revs) -{ -} - int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { int argcount = 1; diff --git a/diff-merges.h b/diff-merges.h index f92de137d3a0..659467c99a4f 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -9,8 +9,6 @@ struct rev_info; -void diff_merges_init_revs(struct rev_info *revs); - int diff_merges_parse_opts(struct rev_info *revs, const char **argv); void diff_merges_suppress(struct rev_info *revs); diff --git a/revision.c b/revision.c index 5a0e3d6ad542..46645ca0b6df 100644 --- a/revision.c +++ b/revision.c @@ -1814,7 +1814,6 @@ void repo_init_revisions(struct repository *r, revs->repo = r; revs->abbrev = DEFAULT_ABBREV; - diff_merges_init_revs(revs); revs->simplify_history = 1; revs->pruning.repo = r; revs->pruning.flags.recursive = 1; From patchwork Mon Dec 21 15:19:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985149 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5FCD2C433E6 for ; Mon, 21 Dec 2020 18:33:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2A2C3230FC for ; Mon, 21 Dec 2020 18:33:20 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727012AbgLUSdC (ORCPT ); Mon, 21 Dec 2020 13:33:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53298 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725953AbgLUSdC (ORCPT ); Mon, 21 Dec 2020 13:33:02 -0500 Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A8B76C061793 for ; Mon, 21 Dec 2020 10:32:21 -0800 (PST) Received: by mail-ej1-x630.google.com with SMTP id lt17so14806322ejb.3 for ; Mon, 21 Dec 2020 10:32:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CfkxbejOxM56mU9DMpXRocxRv86D3jT5RYLM0GM3qkY=; b=lW7XsDc5ooCrDkJwvx/IzFXshdNSxBvYiDhZEb7eG8X3w5u7RFvF09VD5bYZuV2Rx0 hzOnJBpr1e/E+2AwSZotn8KcTIVGqqLNv7t5bCYXjaoauc3FgsILW5HeKei//yoNgHW5 czX2U/OgxR5yCWAgwQBBzlUmfZTKZ3o2AgtHMqTZVYiZbLhXmPmpBcnVBvKcYhulwGt+ szsV3mMt7lj7wIeZURD7ndbc1nWCC25e+Ry94GrSlQ370xTxIrmdyD5CeW4cqDePm1B/ eT8XdPRFPU2vYybO5sAuitReiWUi6T3ZM7cY/RcJO7oMTYygID0hv+4mq+Nmta5odEjQ 8H3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CfkxbejOxM56mU9DMpXRocxRv86D3jT5RYLM0GM3qkY=; b=BZ4khApEElZsiI6eL48S45mTJMBNS0qz3ib31Wijno27vUASr/dI2RHVClnjY7n2yC EGCw1QzCkLjow6Xm19jinKrrWKFLt7p4odnMQo31ZSHMO/Lo1p6SLfuvcnHOJZ+LzU4y 0jwdraEf1L32R8ADpyXrrMPy9Z6+zatLEpAmo+1hbpGDS3qP0tR6ps6GTc3ciqPbC/0U 5ywt6aMBr6l4C+HwT/F9uUQ8RZwCmZmO3aXzXq/EQDpzyZ7cyiWg9VfJ7IsnBNfWKH4C 4wV8wqDTRm08W1BTeeVCVPdh8YzowWKJmWt+kO39u+LfOOXH9lnTz5rMEnywWCJREGb6 rTMA== X-Gm-Message-State: AOAM530VUelOoTC3QXWF72L68VnzhTPACh36aXf0ldBmsleQMpelumkQ OSNCJrn5CLVZbdxOxvPyqXzXMcNxc5I= X-Google-Smtp-Source: ABdhPJwc0zKYb4M4RIJvjkUGuBpVdLAGpyVSDRr5+Fc8yutxKnF1xT8OTnkzs26ejWKW0HrMUSj22g== X-Received: by 2002:a2e:9ad3:: with SMTP id p19mr7253701ljj.286.1608564057391; Mon, 21 Dec 2020 07:20:57 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:56 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 21/32] diff-merges: refactor opt settings into separate functions Date: Mon, 21 Dec 2020 18:19:49 +0300 Message-Id: <20201221152000.13134-22-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org To prepare introduction of new options some of which will be synonyms to existing options, let every option handling code just call corresponding function. Signed-off-by: Sergey Organov --- diff-merges.c | 63 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 22 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 34d7ed7c70b7..b8fd92adcf16 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -10,12 +10,43 @@ static void suppress(struct rev_info *revs) revs->dense_combined_merges = 0; } +static void set_separate(struct rev_info *revs) +{ + suppress(revs); + revs->separate_merges = 1; +} + +static void set_m(struct rev_info *revs) +{ + /* + * To "diff-index", "-m" means "match missing", and to the "log" + * family of commands, it means "show full diff for merges". Set + * both fields appropriately. + */ + set_separate(revs); + revs->match_missing = 1; +} + +static void set_combined(struct rev_info *revs) +{ + revs->combine_merges = 1; + revs->dense_combined_merges = 0; +} + static void set_dense_combined(struct rev_info *revs) { revs->combine_merges = 1; revs->dense_combined_merges = 1; } +static void set_diff_merges(struct rev_info *revs, const char *optarg) +{ + if (!strcmp(optarg, "off")) { + suppress(revs); + } else { + die(_("unknown value for --diff-merges: %s"), optarg); + } +} /* * Public functions. They are in the order they are called. @@ -27,31 +58,19 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) const char *optarg; const char *arg = argv[0]; - if (!strcmp(arg, "-m")) { - suppress(revs); - /* - * To "diff-index", "-m" means "match missing", and to the "log" - * family of commands, it means "show full diff for merges". Set - * both fields appropriately. - */ - revs->separate_merges = 1; - revs->match_missing = 1; - } else if (!strcmp(arg, "-c")) { - revs->dense_combined_merges = 0; - revs->combine_merges = 1; - } else if (!strcmp(arg, "--cc")) { + if (!strcmp(arg, "-m")) + set_m(revs); + else if (!strcmp(arg, "-c")) + set_combined(revs); + else if (!strcmp(arg, "--cc")) set_dense_combined(revs); - } else if (!strcmp(arg, "--no-diff-merges")) { + else if (!strcmp(arg, "--no-diff-merges")) suppress(revs); - } else if (!strcmp(arg, "--combined-all-paths")) { + else if (!strcmp(arg, "--combined-all-paths")) revs->combined_all_paths = 1; - } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { - if (!strcmp(optarg, "off")) { - suppress(revs); - } else { - die(_("unknown value for --diff-merges: %s"), optarg); - } - } else + else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) + set_diff_merges(revs, optarg); + else return 0; revs->explicit_diff_merges = 1; From patchwork Mon Dec 21 15:19:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985067 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 91B98C433E6 for ; Mon, 21 Dec 2020 18:06:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6061F23103 for ; Mon, 21 Dec 2020 18:06:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726502AbgLUSGY (ORCPT ); Mon, 21 Dec 2020 13:06:24 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726075AbgLUSGX (ORCPT ); Mon, 21 Dec 2020 13:06:23 -0500 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12502C061285 for ; Mon, 21 Dec 2020 10:05:43 -0800 (PST) Received: by mail-wr1-x429.google.com with SMTP id r7so11983028wrc.5 for ; Mon, 21 Dec 2020 10:05:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WHq9AMo3CFiCCxTUtitw3dFzzmnOH2TkWTdN8FLeSi4=; b=Xcu6inlvCPZ7lpZtGokuvPALc8YiY1VBa+TyOIBrpI5GDRGBamjMAi2wROjrSnc7Fe 2auCJ8NzegQ5hEHuz9HJ0N2WTlU9vXa5FkH3E9xq4zh7U6DEyL3/n45NWY8x1Qh74mKx uH1MVQ23PH0QEMNyX3Jk+doZjIJdulFbRm0tFIXJ3VIfG2ScnNfpROwhKSv4JdHRXesd VGurxuaGzvWhzU3sKdASMrz7bhGqOyTFYKUc3eXQySNG+Nyk9mnZceIDwW3fRSJVSNFK HcAe/JePeXdd8rwkK5NqJg95GKOSgzb3T0RciHRPcTPoDvo7ITODOupdIqhOZys5EAOo 808w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WHq9AMo3CFiCCxTUtitw3dFzzmnOH2TkWTdN8FLeSi4=; b=ShLZByr0yN12s3mxTadNhE0hOUEs9sS34b3oJdC7Aqp85r9xf2FZKEiQHSF7I3szkH MM/uTF7Z+13R0dBqfp0fuo6UQta0tqoRtkxILm4Grr0PibnixVSA9lcyE3IcITyaVmik Kq5rkbXbaW5WLNZBxCuw8GhWxYWn6Zqm3U9VJi3MLAf1D5KhB9Zv9Q/C5qN1ePtE1wHv Ru5RBHPPDJSwJqOjbVwdRC/fI8OZ0hForf6I8Pol7yI7WhbBqFE9Kk/88uL535Slmacq tho4aP5cV8Bk7g54ulqaPAVmSp0GmmNcH4wj8JE3sC8UbreqsW7BYgzRiOmBtJSIqMi5 Vl5g== X-Gm-Message-State: AOAM533SFUAPwLh8jzg6Z6qDUM/MhDnXAtr8PKA2BSMJKjHetLgO8EQ9 AasDyfzKY2fc61rREDkvdBbuuQ/c45Y= X-Google-Smtp-Source: ABdhPJwUXyNW0ddI18EBhWHerCXqswVTE1JaVomzY3AORu/1ZxezmXeJJNQopeIkqdjxHEjM7S8dpg== X-Received: by 2002:a2e:535a:: with SMTP id t26mr7369293ljd.455.1608564058505; Mon, 21 Dec 2020 07:20:58 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:57 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 22/32] diff-merges: make -m/-c/--cc explicitly mutually exclusive Date: Mon, 21 Dec 2020 18:19:50 +0300 Message-Id: <20201221152000.13134-23-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org -c/--cc got precedence over -m only because of external logic where corresponding flags are checked before that for -m. This is too error-prone, so add code that explicitly makes these 3 options mutually exclusive, so that the last option specified on the command-line gets precedence. Signed-off-by: Sergey Organov --- diff-merges.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/diff-merges.c b/diff-merges.c index b8fd92adcf16..e3c0190ebd95 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -8,6 +8,7 @@ static void suppress(struct rev_info *revs) revs->first_parent_merges = 0; revs->combine_merges = 0; revs->dense_combined_merges = 0; + revs->combined_all_paths = 0; } static void set_separate(struct rev_info *revs) @@ -29,12 +30,14 @@ static void set_m(struct rev_info *revs) static void set_combined(struct rev_info *revs) { + suppress(revs); revs->combine_merges = 1; revs->dense_combined_merges = 0; } static void set_dense_combined(struct rev_info *revs) { + suppress(revs); revs->combine_merges = 1; revs->dense_combined_merges = 1; } From patchwork Mon Dec 21 15:19:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985059 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79C02C4332E for ; Mon, 21 Dec 2020 18:05:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 579E822D49 for ; Mon, 21 Dec 2020 18:05:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726480AbgLUSFy (ORCPT ); Mon, 21 Dec 2020 13:05:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48836 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725848AbgLUSFy (ORCPT ); Mon, 21 Dec 2020 13:05:54 -0500 Received: from mail-lf1-x131.google.com (mail-lf1-x131.google.com [IPv6:2a00:1450:4864:20::131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8683BC061793 for ; Mon, 21 Dec 2020 10:05:38 -0800 (PST) Received: by mail-lf1-x131.google.com with SMTP id h205so25816141lfd.5 for ; Mon, 21 Dec 2020 10:05:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EP+cYVGUySztP3KkqPztNZQSEbau2EvM/WYubE9/QR4=; b=aNzKK7lDV4n9gTi9tyvTyLL/oXR96eKwM8gqn6QNEOS9gezDaYfCIt+HjSAAai8+fh qvNzugOgkpL83JeKMAqh9hoWzwR5krR2nVhT1gbRsvdgT6si22/PMd/tk2MXQN4m5oak CLfXgzZLdYBZG99hY7VEDk3y3fPdVApI8ZgGwnWK5Xd190kPmbd72mm3cn+/HkN+4TGt c5ZzeRptHIjiEZP2nmJBq3JYKaz80cOhm9UXXMmiyhIk4j4NGpG82+pnK+jYbZhrZ30q 8vWTECAQM9DlpKAvZ8envS2dIcj3s6Ut3Vq75B3Aogl3RPMhQgAWuCQtqbdB4i75cq1T ojsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=EP+cYVGUySztP3KkqPztNZQSEbau2EvM/WYubE9/QR4=; b=C9n4f4ZthSH8BqCc6mfasW50AyJQrwCYox051zdo+zD+51usc8mvwG/QOuwEpqw2On u5/XyFPQBxs3hMIIP5oEQHCRQXhCif3eFm2sxIprITBea9/xxeFwIcrNH/cKLflvOQQ6 lw8uddha8XHjeKAWCjRwGbtSW0dZdgoBuBp7Gu7ANxtz4MseuoJq/u/eoepvy8SkW2lA O2yHsa70sV1LSEvT/Arjq2D6k4OyGs2QJJF8MCnF3axoBFGZw2Qh/0q+NRsH5Z00eij+ MvhbWH/8EeKR5RDNWeJ6lsY7Shne9MKfKqEHwbTt6FhOxPe7M3qSpGQpCIsIXSbWAVP7 LNCA== X-Gm-Message-State: AOAM533bWqd8v2ch7smBXDE6ANA59/m0qXQZvWz8HkDxGwdV4wjQynHt 1OmmHI3LmNVWetu4RmGmW1js918Pez4= X-Google-Smtp-Source: ABdhPJwxfLxY/VM+0N12YqRoyAoEfUunUTkLeF58q1GVhz+rk+jl6uo0f6svSa88+cLHoFehkIQ+2g== X-Received: by 2002:a2e:a414:: with SMTP id p20mr7678157ljn.98.1608564059682; Mon, 21 Dec 2020 07:20:59 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:20:58 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 23/32] diff-merges: implement new values for --diff-merges Date: Mon, 21 Dec 2020 18:19:51 +0300 Message-Id: <20201221152000.13134-24-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org We first implement new options as exact synonyms for their original counterparts, to get all the infrastructure right, and keep functional improvements for later commits. The following values are implemented: --diff-merges= old equivalent first|first-parent = --first-parent (only format implications) sep|separate = -m comb|combined = -c dense| dense-combined = --cc Signed-off-by: Sergey Organov --- diff-merges.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index e3c0190ebd95..4d22da179577 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -17,6 +17,12 @@ static void set_separate(struct rev_info *revs) revs->separate_merges = 1; } +static void set_first_parent(struct rev_info *revs) +{ + set_separate(revs); + revs->first_parent_merges = 1; +} + static void set_m(struct rev_info *revs) { /* @@ -44,11 +50,18 @@ static void set_dense_combined(struct rev_info *revs) static void set_diff_merges(struct rev_info *revs, const char *optarg) { - if (!strcmp(optarg, "off")) { + if (!strcmp(optarg, "off") || !strcmp(optarg, "none")) suppress(revs); - } else { + else if (!strcmp(optarg, "first-parent")) + set_first_parent(revs); + else if (!strcmp(optarg, "separate")) + set_separate(revs); + else if (!strcmp(optarg, "combined")) + set_combined(revs); + else if (!strcmp(optarg, "dense-combined")) + set_dense_combined(revs); + else die(_("unknown value for --diff-merges: %s"), optarg); - } } /* From patchwork Mon Dec 21 15:19:52 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985073 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E8808C433DB for ; Mon, 21 Dec 2020 18:10:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B92B622D08 for ; Mon, 21 Dec 2020 18:10:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725898AbgLUSJy (ORCPT ); Mon, 21 Dec 2020 13:09:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49550 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725878AbgLUSJx (ORCPT ); Mon, 21 Dec 2020 13:09:53 -0500 Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CC42EC0613D3 for ; Mon, 21 Dec 2020 10:09:12 -0800 (PST) Received: by mail-lf1-x12d.google.com with SMTP id o17so25881645lfg.4 for ; Mon, 21 Dec 2020 10:09:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CQyNXsn+HkrFHz92ETGJmgSUu0rpCl53hUo7mEoQf+s=; b=m32Ex0OUuP2ElyPbKbLVsddoaNqOxWloINbXMiHPTaUSEoBYCIE9SwGrJwfpJ0OGo2 rEXo/64+yngQ9BQciovwxpdKRkl2/FtbHVi7O3w4yyxy0eIyZbOIeb6Nuq1X8ZCsxmjh Vhz4wxDw5i2jpBMw0m7l5YAnIl8m0C/0hlm7fehTWpqXvsETKeq+CDM470hzPWhqpUVl 9LhNWU2ABOk8DEEp3ZwkR0DMNLROZ7iB+pIb00gb76ElsoiEIfI+EuEuCLMYNZ2WEzUL bik6BFwhnvwADPMeoZnF/nUjUcz46pRgTfjiyHLOrW8eeXDm1yhiI5JC1/m+B98gHfEQ vuhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CQyNXsn+HkrFHz92ETGJmgSUu0rpCl53hUo7mEoQf+s=; b=ZDlCtZfP3CtTz8GEQiWeSpKJBx8IKUIezODsS/ebxy52PJW9K2bPp4r5nyxthmU9xr RgepgsqTtf4dLRbwDbGOrBFi7iDxx+TYLiryUCRjI2NFynUDaaz/qWpiceglR6qcJvNS CxnNGEC0CUy+61R4eBi1VhzEe6MEAr4pzAzxlULDha6Ak1Xq233UrAH+ycvTZeXZpz79 lhRvI6dAGhVmyHZMqlU6LzOIABOkiXAYFDPrFOjpwVHxc2JTGpWn4MIvTgyw2lQ2RA7s Ad0J1wzz5ypuIxKEmNIvhgjVJmLhi4EXEV0ju7p8Bpt0rSZ50K4pbnMk2+0VAyg7PK3b /L2g== X-Gm-Message-State: AOAM533qxj2ZJ4e3yjTUlkSjQKrgM53jlc/uF2eiCOnoXq3MS1BAgkXd IYQYHDzpfuqaFk/P+Ce+tdmjilc5NhA= X-Google-Smtp-Source: ABdhPJyBbZmwQ2q+ToYRKbSrrSnjvGiAKc8JeJxHTVB+Xr0ogQcjy390HcdUQeBqIFg6QPlPRDg5XQ== X-Received: by 2002:a2e:b006:: with SMTP id y6mr7426051ljk.366.1608564060714; Mon, 21 Dec 2020 07:21:00 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.20.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:21:00 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 24/32] diff-merges: do not imply -p for new options Date: Mon, 21 Dec 2020 18:19:52 +0300 Message-Id: <20201221152000.13134-25-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Add 'combined_imply_patch' field and set it only for old --cc/-c options, then imply -p if this flag is set instead of implying -p whenever 'combined_merge' flag is set. We don't want new --diff-merge options to imply -p, to make it possible to enable output of diffs for merges independently from non-merge commits. At the same time we want to preserve behavior of old --c/-c/-m options and their interactions with --first-parent, to stay backward-compatible. This patch is first step in this direction: it separates old "--cc/-c imply -p" logic from the rest of the options. Signed-off-by: Sergey Organov --- diff-merges.c | 20 ++++++++++++-------- revision.h | 1 + 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 4d22da179577..6d48ac5ab93d 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -9,6 +9,7 @@ static void suppress(struct rev_info *revs) revs->combine_merges = 0; revs->dense_combined_merges = 0; revs->combined_all_paths = 0; + revs->combined_imply_patch = 0; } static void set_separate(struct rev_info *revs) @@ -74,19 +75,21 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) const char *optarg; const char *arg = argv[0]; - if (!strcmp(arg, "-m")) + if (!strcmp(arg, "-m")) { set_m(revs); - else if (!strcmp(arg, "-c")) + } else if (!strcmp(arg, "-c")) { set_combined(revs); - else if (!strcmp(arg, "--cc")) + revs->combined_imply_patch = 1; + } else if (!strcmp(arg, "--cc")) { set_dense_combined(revs); - else if (!strcmp(arg, "--no-diff-merges")) + revs->combined_imply_patch = 1; + } else if (!strcmp(arg, "--no-diff-merges")) { suppress(revs); - else if (!strcmp(arg, "--combined-all-paths")) + } else if (!strcmp(arg, "--combined-all-paths")) { revs->combined_all_paths = 1; - else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) + } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { set_diff_merges(revs, optarg); - else + } else return 0; revs->explicit_diff_merges = 1; @@ -126,8 +129,9 @@ void diff_merges_setup_revs(struct rev_info *revs) revs->first_parent_merges = 0; if (revs->combined_all_paths && !revs->combine_merges) die("--combined-all-paths makes no sense without -c or --cc"); - if (revs->combine_merges) { + if (revs->combine_merges) revs->diff = 1; + if (revs->combined_imply_patch) { /* Turn --cc/-c into -p --cc/-c when -p was not given */ if (!revs->diffopt.output_format) revs->diffopt.output_format = DIFF_FORMAT_PATCH; diff --git a/revision.h b/revision.h index dcfa14454a55..bfbae526ad6e 100644 --- a/revision.h +++ b/revision.h @@ -197,6 +197,7 @@ struct rev_info { separate_merges: 1, combine_merges:1, combined_all_paths:1, + combined_imply_patch:1, dense_combined_merges:1, first_parent_merges:1; From patchwork Mon Dec 21 15:19:53 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985093 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4F10DC433DB for ; Mon, 21 Dec 2020 18:15:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1DC9922D08 for ; Mon, 21 Dec 2020 18:15:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726065AbgLUSPW (ORCPT ); Mon, 21 Dec 2020 13:15:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50446 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726108AbgLUSPV (ORCPT ); Mon, 21 Dec 2020 13:15:21 -0500 Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 32D71C0613D3 for ; Mon, 21 Dec 2020 10:14:41 -0800 (PST) Received: by mail-ed1-x530.google.com with SMTP id b73so10435041edf.13 for ; Mon, 21 Dec 2020 10:14:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4J+ZFZqQ2+Y9sw/AYBJ+HoKrti5Dgq9RlTn2IRe9w5g=; b=NtDPtz39RZYNLwe93QK3FJ5eOsR740l09yzFrh3yR5fonsQtmIkl5dgQi2QeoVaX4s 7ifRBZ/p+/yLtBPa5wb066ktIYhKL9cbOoXw/VR/l/tE+koT3N2vkLJyA1eLEdoU+Eis I/Ij4oH8Yuk6SHZgSkMhHEUeioKBPh/CMscNmDbnHQdWygZO6gL8FgDVTbBDXQNf9Y33 E0/GjONPDHHZiAZJarm4J5iutYo5daFaH2rG8PWSmv8kgT6abC+k+ZPQ4SFrZMKSqBpJ jCtGrgFwUTlH5ZHQVFd0LTBwyY7ekkg1CqvW25Nikqm5ROUh1YSTu2qSRF5OY/uYN2cu gPzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4J+ZFZqQ2+Y9sw/AYBJ+HoKrti5Dgq9RlTn2IRe9w5g=; b=BOE5fpM8VMvY1khqDBua2IGbVr+lxCwsLsy/MVCmhoS1K23tUbXQ6MT7NYxbEOe5zM Me4BEOGrWn2IFfM627WdXchax7bQ5vCJjV22LdhYWfVU6dJtZ3qKkWHVVtu7ZL1ORzGp vSvoo1xSqdd6r1LwfMtK1onRPj6PmAnUgtV0XSnPe1FMao3wYjXyydzk8e5/P2Jez3nV QD6jhaY7n3zWCRj3XPRbBpo0QU43Q6E4uPnzsFhRL1KjUstudqVQDs6OsidQO9lSWW9B pDTCg6nCDWq5oZs9c4bJKi+t/Us4WQdYg2t3YcZrWxo64tVnD2w/LBVV7ORWdwnEQ0qq Tdpg== X-Gm-Message-State: AOAM5310MJoRVADght0nMZNCc3Ni5q7VT6RtOs11eaWY0NWEWh7fRya4 Tg8caicbqMK3Op95T14g6tvC4539RbA= X-Google-Smtp-Source: ABdhPJy6kgosHxyIztMD8dt40M3TjvGaJeXmqVvJAR40oEbG1OxsD9ZkXzKqm01aArB3Z1shBr04yQ== X-Received: by 2002:a2e:b522:: with SMTP id z2mr7321773ljm.500.1608564061828; Mon, 21 Dec 2020 07:21:01 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.21.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:21:01 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 25/32] diff-merges: let new options enable diff without -p Date: Mon, 21 Dec 2020 18:19:53 +0300 Message-Id: <20201221152000.13134-26-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org New options don't have any visible effect unless -p is either given or implied, as unlike -c/-cc we don't imply -p with --diff-merges. To fix this, this patch adds new functionality by letting new options enable output of diffs for merge commits only. Add 'merges_need_diff' field and set it whenever diff output for merges is enabled by any of the new options. Extend diff output logic accordingly, to output diffs for merges when 'merges_need_diff' is set even when no -p has been provided. Signed-off-by: Sergey Organov --- diff-merges.c | 17 ++++++++++++----- log-tree.c | 13 +++++++++---- revision.h | 1 + 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 6d48ac5ab93d..ee91ed0db409 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -10,6 +10,7 @@ static void suppress(struct rev_info *revs) revs->dense_combined_merges = 0; revs->combined_all_paths = 0; revs->combined_imply_patch = 0; + revs->merges_need_diff = 0; } static void set_separate(struct rev_info *revs) @@ -51,9 +52,13 @@ static void set_dense_combined(struct rev_info *revs) static void set_diff_merges(struct rev_info *revs, const char *optarg) { - if (!strcmp(optarg, "off") || !strcmp(optarg, "none")) + if (!strcmp(optarg, "off") || !strcmp(optarg, "none")) { suppress(revs); - else if (!strcmp(optarg, "first-parent")) + /* Return early to leave revs->merges_need_diff unset */ + return; + } + + if (!strcmp(optarg, "first-parent")) set_first_parent(revs); else if (!strcmp(optarg, "separate")) set_separate(revs); @@ -63,6 +68,9 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg) set_dense_combined(revs); else die(_("unknown value for --diff-merges: %s"), optarg); + + /* The flag is cleared by set_xxx() functions, so don't move this up */ + revs->merges_need_diff = 1; } /* @@ -129,10 +137,9 @@ void diff_merges_setup_revs(struct rev_info *revs) revs->first_parent_merges = 0; if (revs->combined_all_paths && !revs->combine_merges) die("--combined-all-paths makes no sense without -c or --cc"); - if (revs->combine_merges) + if (revs->combined_imply_patch) revs->diff = 1; - if (revs->combined_imply_patch) { - /* Turn --cc/-c into -p --cc/-c when -p was not given */ + if (revs->combined_imply_patch || revs->merges_need_diff) { if (!revs->diffopt.output_format) revs->diffopt.output_format = DIFF_FORMAT_PATCH; } diff --git a/log-tree.c b/log-tree.c index f9385b1dae6f..9f50a81e537e 100644 --- a/log-tree.c +++ b/log-tree.c @@ -899,15 +899,21 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log int showed_log; struct commit_list *parents; struct object_id *oid; + int is_merge; + int all_need_diff = opt->diff || opt->diffopt.flags.exit_with_status; - if (!opt->diff && !opt->diffopt.flags.exit_with_status) + if (!all_need_diff && !opt->merges_need_diff) return 0; parse_commit_or_die(commit); oid = get_commit_tree_oid(commit); - /* Root commit? */ parents = get_saved_parents(opt, commit); + is_merge = parents && parents->next; + if (!is_merge && !all_need_diff) + return 0; + + /* Root commit? */ if (!parents) { if (opt->show_root_diff) { diff_root_tree_oid(oid, "", &opt->diffopt); @@ -916,8 +922,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log return !opt->loginfo; } - /* More than one parent? */ - if (parents->next) { + if (is_merge) { if (opt->combine_merges) return do_diff_combined(opt, commit); if (opt->separate_merges) { diff --git a/revision.h b/revision.h index bfbae526ad6e..494d86142454 100644 --- a/revision.h +++ b/revision.h @@ -194,6 +194,7 @@ struct rev_info { always_show_header:1, /* Diff-merge flags */ explicit_diff_merges: 1, + merges_need_diff: 1, separate_merges: 1, combine_merges:1, combined_all_paths:1, From patchwork Mon Dec 21 15:19:54 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985083 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D2E63C433E6 for ; Mon, 21 Dec 2020 18:13:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 89AAE22D49 for ; Mon, 21 Dec 2020 18:13:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726644AbgLUSMu (ORCPT ); Mon, 21 Dec 2020 13:12:50 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50034 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725898AbgLUSMs (ORCPT ); Mon, 21 Dec 2020 13:12:48 -0500 Received: from mail-ed1-x534.google.com (mail-ed1-x534.google.com [IPv6:2a00:1450:4864:20::534]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 71442C0613D6 for ; Mon, 21 Dec 2020 10:12:08 -0800 (PST) Received: by mail-ed1-x534.google.com with SMTP id b73so10428329edf.13 for ; Mon, 21 Dec 2020 10:12:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gwxhloLxTFP3moDBxkNUyzlkEm1dzWlIdODHya7imMk=; b=fTx4/edB/lMtIPIWuiYdKNS2QkHMyxhox5cYx78seuk7c7gDPGGDPWygfHPfJFAxNe A2WK685ZKAmtTMXnqBfl3f2eEbtTBIpw8DqyIW5CFDz0KEwpOwBiFwm7nTUOAedHZx7H la4Qpoa5JibD2+9wOlq4M4dm4T6Ooohmgs+4jDG+yrlYGjBxmbNo5Nt6F0nBUpg21fI9 y6McJ4NQDpK8CFTijMYVXHAaf2Xwem0yRDt8UDE+vuxyrHJ3wU817gv5Lia1mevRVdem gC4bRT0UkDSjWc3wX5q6B/UE01C7fnRcATiLBL12pk9BsMTAD3ISOSbiY0FP1NfDmr16 70wQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gwxhloLxTFP3moDBxkNUyzlkEm1dzWlIdODHya7imMk=; b=Up5boE+sy2E4SKc2CYsNgjS1XDSGfCwarFgdLiPJs5uAe3EuppF8hCopvZV214biMJ trVrVXBPejwgibHL3PJiehARvjl72/1/oRLBVxN3pXZbSKbR0gfz+byifLqnBmvHwYXJ eKojxTA8J8MMUtcMrl/3uZ56a4ZZbwTtpEtGcPdcOjtLkeaRFLK84gf4v+aHnkJdjtdK GD/vMGV2JDLumfUO4ueNNy/qtB8/Bff1Zkz/mp6K9Gz6HJcEwNK0SkfhtjjnC05cziRJ puhWnBaYk3JnW5EovKEc+MOvvUKZqnm2ZZOiZTzIyK/o/2+rI7U3DtCJ5aDnUFhSvkeQ K6yQ== X-Gm-Message-State: AOAM531OKSAVGg1cxBwu5ja/OAybhgTfLA7wIGOISYDFNqXym0YH4/ac Ldm6dQQdy7PusS1eSYq6Vv63IO6IeG0= X-Google-Smtp-Source: ABdhPJymjQoN0C52VKc10VS4tjjn7L47UELHSLTGj5D1bhPr/4DhYEonTodDGdtfteam3rJiXvTigw== X-Received: by 2002:a19:8343:: with SMTP id f64mr7295714lfd.542.1608564063007; Mon, 21 Dec 2020 07:21:03 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.21.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:21:02 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 26/32] diff-merges: add old mnemonic counterparts to --diff-merges Date: Mon, 21 Dec 2020 18:19:54 +0300 Message-Id: <20201221152000.13134-27-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org This adds --diff-merges={m|c|cc} values that match mnemonics of old options, for those who are used to them. Note that, say, --diff-meres=cc behaves differently than --cc, as the latter implies -p and therefore enables diffs for all the commits, while the former enables output of diffs for merge commits only. Signed-off-by: Sergey Organov --- diff-merges.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index ee91ed0db409..011bfff1f135 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -60,11 +60,11 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg) if (!strcmp(optarg, "first-parent")) set_first_parent(revs); - else if (!strcmp(optarg, "separate")) + else if (!strcmp(optarg, "m") || !strcmp(optarg, "separate")) set_separate(revs); - else if (!strcmp(optarg, "combined")) + else if (!strcmp(optarg, "c") || !strcmp(optarg, "combined")) set_combined(revs); - else if (!strcmp(optarg, "dense-combined")) + else if (!strcmp(optarg, "cc") || !strcmp(optarg, "dense-combined")) set_dense_combined(revs); else die(_("unknown value for --diff-merges: %s"), optarg); From patchwork Mon Dec 21 15:19:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985157 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B9789C433E6 for ; Mon, 21 Dec 2020 18:39:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 701FE2311A for ; Mon, 21 Dec 2020 18:39:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726802AbgLUSjf (ORCPT ); Mon, 21 Dec 2020 13:39:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54360 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726759AbgLUSjf (ORCPT ); Mon, 21 Dec 2020 13:39:35 -0500 Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0AF61C0613D6 for ; Mon, 21 Dec 2020 10:38:55 -0800 (PST) Received: by mail-ej1-x636.google.com with SMTP id q22so14844113eja.2 for ; Mon, 21 Dec 2020 10:38:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uqNVrukPiv98OEYmpOc+TgCMU7evmtQo4VRyCVyU6uc=; b=DCeCscJlO3aHjWRSISB+S3IClvKxGGGbWdF1sSVQ1vUA1ronYLjqJmjdK4HlkZfh7l Kwz/MKYycn7CdX/Ix2k4MHnhKdu7ZrcyY11g4i7jhRKTw2gBPw/mjJ8fsx2w7MqLUGAl HBENBuGOvykYYVFHiFntejmn272fmQJmth6CtU7izXixcP6pQBEQ5LVk8Ew3mKq7whdI uXatDba6qiYcFb9GOyEu3odxvwUQeq97bcvAA+MwIASi0vu3r9YfqdD2wogID3WtuqAd j9FETlGiwz1n61BO2nISp+AB93LkN7EwzhLqxVmCJYSInxa+pURrSndMC0vdcAcKuSrG KVMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=uqNVrukPiv98OEYmpOc+TgCMU7evmtQo4VRyCVyU6uc=; b=XKYgM8iW3blotP2APwCdYzH/Pnf19nA9ia6ek1NoCEGfkbUOI+XGQeR876sFg6ja9l VNiTsRKsCH2O0jc7dhf7ke3h2Lm587tEitP8uMPCI4hZ1ofn/ggG7/DSZ+ELtjfbxdK2 j+X2f4SS7CQxPz6Upv3wyTJ5wI1AWMjnkqKGw5+F3/TCb3XQHFuohMThiAUVXMFKAWaN 5nkIE/0wMV5ujVF9n+B9QX1OhEexA7DW+nmQB9dQs6ZWUN6q4Rel9ROScVazmTBXa3/6 WDiMR5Grt4pqpuxY0pZiHepQ3RJVfMe3Aog1AVSItQJ3I2trY5Gj4pvXFwA+nrX1KCnK EUwQ== X-Gm-Message-State: AOAM533TLeJcgSlMXeDCxYD2zZaMfej5fyaOwjoJwCt4XUvNziVQMNbJ flQEoMBVR3VIoK+Z4Fbl/QV5yLmijKs= X-Google-Smtp-Source: ABdhPJyuVo7modspCX5W8NffMj71i7SXMeHtgsNTUhHaC/KapriA36zcQc/xthpro5EnJ7W3hE4WYA== X-Received: by 2002:ac2:5f06:: with SMTP id 6mr6964074lfq.135.1608564064047; Mon, 21 Dec 2020 07:21:04 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.21.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:21:03 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 27/32] diff-merges: add '--diff-merges=1' as synonym for 'first-parent' Date: Mon, 21 Dec 2020 18:19:55 +0300 Message-Id: <20201221152000.13134-28-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we now have --diff-merges={m|c|cc}, add --diff-merges=1 as synonym for --diff-merges=first-parent, to have shorter mnemonics for it as well. Signed-off-by: Sergey Organov --- diff-merges.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/diff-merges.c b/diff-merges.c index 011bfff1f135..146bb50316a6 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -58,7 +58,7 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg) return; } - if (!strcmp(optarg, "first-parent")) + if (!strcmp(optarg, "1") || !strcmp(optarg, "first-parent")) set_first_parent(revs); else if (!strcmp(optarg, "m") || !strcmp(optarg, "separate")) set_separate(revs); From patchwork Mon Dec 21 15:19:56 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985227 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 74CFFC433DB for ; Mon, 21 Dec 2020 19:02:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4627122AAE for ; Mon, 21 Dec 2020 19:02:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726345AbgLUTCz (ORCPT ); Mon, 21 Dec 2020 14:02:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58054 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726235AbgLUTCz (ORCPT ); Mon, 21 Dec 2020 14:02:55 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A478BC0613D6 for ; Mon, 21 Dec 2020 11:02:14 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id r7so12178357wrc.5 for ; Mon, 21 Dec 2020 11:02:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jn5zqXUcNfSMAtnBtLBq0vbrLiabg1QIXZiDFpXraDA=; b=jPA//plu2V6GuIP7iU8YQ+lTwwPdzeBMZ59rENQ92ptGx8RtHFsgQ4nioI80HVL3Gk 0wzrSjyjmiHqguds/qnVkUEfHBFt/HXaJBNnvao9/hVjTHSRkzCPgJ9MMgcmizpZL1gG M1kst9jlD7rVMmMDAJp2WROC4g1utMpXFU74zwc8OZdJVSd/qGPbi6x0T9Wrrq5wJJ7l Dwqdeh0sUdQD6sfCgSHgKQsSYPeerl5i+Vm5AR2vlommgGn2HfYMJbzqXe5mlz2RvSjP tWxTAHOmEMkbNKowsGx1gKAtqybaW7X3NbsEqNZRWtmm8tM5WYO5GPkecbnjgV/vw8h6 Jqqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jn5zqXUcNfSMAtnBtLBq0vbrLiabg1QIXZiDFpXraDA=; b=A2AHnZw00w3vEy1+9xkAasTDQFDppUAYsJ2G2HfNVOkyHkncQOVoU3XEr73wt9QqXe 8sLAXD27weR+ovHFrTYFSAhSM4z/ZWmJdTLyox+6fUMNm61fQQP5nN19E1L5ueSWRu9U v8qI1bUg9EFWP2Dk6tDVRcD7fzj+MFydl+X2lr7MsiXbDt0aypc9va6KFpiIlmwMvR/s 0S6BSeSeNEe5eC7q6+p2wkbqhUw70k7JlVBULnNtiymlNKgU+CJbgXVvnY3MQ+IIns95 xxDmAQv0yEIWbAM4bnzEZhau+XRwsiEVad6iiFwYtjcQ9QGrzznP0ogW2TtvLoaheDQt FSUQ== X-Gm-Message-State: AOAM531NdZ77zdK/34BRJdGgoSiOog0dkai2JJWrsFeM09dIPSnwF+tV r82gqoWWSwmaFmy9FfrHfnz1jS8YM0w= X-Google-Smtp-Source: ABdhPJz3reP2xvRM+wqSvJ0gJhQOHCoGt+NUXaUaM8ETfmLvewYg6z9ULWKXMJNgGsvy29GFZs5IrA== X-Received: by 2002:ac2:598a:: with SMTP id w10mr6552915lfn.547.1608564065237; Mon, 21 Dec 2020 07:21:05 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.21.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:21:04 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 28/32] doc/git-log: describe new --diff-merges options Date: Mon, 21 Dec 2020 18:19:56 +0300 Message-Id: <20201221152000.13134-29-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Describe all the new --diff-merges options in the git-log.txt and adopt description of originals accordingly. Signed-off-by: Sergey Organov --- Documentation/git-log.txt | 83 +++++++++++++++++++++++---------------- 1 file changed, 50 insertions(+), 33 deletions(-) diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt index 2b8ac5ff882a..ff83dff14dd6 100644 --- a/Documentation/git-log.txt +++ b/Documentation/git-log.txt @@ -120,45 +120,62 @@ DIFF FORMATTING By default, `git log` does not generate any diff output. The options below can be used to show the changes made by each commit. -Note that unless one of `-c`, `--cc`, or `-m` is given, merge commits -will never show a diff, even if a diff format like `--patch` is -selected, nor will they match search options like `-S`. The exception is -when `--first-parent` is in use, in which merges are treated like normal -single-parent commits (this can be overridden by providing a -combined-diff option or with `--no-diff-merges`). +Note that unless one of `--diff-merges` variants (including short +`-m`, `-c`, and `--cc` options) is explicitly given, merge commits +will not show a diff, even if a diff format like `--patch` is +selected, nor will they match search options like `-S`. The exception +is when `--first-parent` is in use, in which case `first-parent` is +the default format. --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. +--diff-merges=(off|none|first-parent|1|separate|m|combined|c|dense-combined|cc):: +--no-diff-merges:: + Specify diff format to be used for merge commits. Default is + `off` unless `--first-parent` is in use, in which case + `first-parent` is the default. ++ +--diff-merges=(off|none)::: +--no-diff-merges::: + Disable output of diffs for merge commits. Useful to override + implied value. ++ +--diff-merges=first-parent::: +--diff-merges=1::: + This option makes merge commits show the full diff with + respect to the first parent only. ++ +--diff-merges=separate::: +--diff-merges=m::: +-m::: + This makes merge commits show the full diff with respect to + each of the parents. Separate log entry and diff is generated + for each parent. `-m` doesn't produce any output without `-p`. ++ +--diff-merges=combined::: +--diff-merges=c::: +-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. `-c` implies + `-p`. ++ +--diff-merges=dense-combined::: +--diff-merges=cc::: +--cc::: + With this option the output produced by + `--diff-merges=combined` is further compressed by omitting + uninteresting hunks whose contents in the parents have only + two variants and the merge result picks one of them without + modification. `--cc` implies `-p`. --combined-all-paths:: This flag causes combined diffs (used for merge commits) to list the name of the file from all parents. It thus only has - effect when -c or --cc are specified, and is likely only - useful if filename changes are detected (i.e. when either - rename or copy detection have been requested). + effect when `--diff-merges=[dense-]combined` is in use, and + is likely only useful if filename changes are detected (i.e. + when either rename or copy detection have been requested). --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. - ---diff-merges=off:: ---no-diff-merges:: - Disable output of diffs for merge commits (default). Useful to - override `-m`, `-c`, or `--cc`. :git-log: 1 include::diff-options.txt[] From patchwork Mon Dec 21 15:19:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985231 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2A4A0C433E9 for ; Mon, 21 Dec 2020 19:12:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0389B22527 for ; Mon, 21 Dec 2020 19:12:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727321AbgLUTL7 (ORCPT ); Mon, 21 Dec 2020 14:11:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59468 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727245AbgLUTLy (ORCPT ); Mon, 21 Dec 2020 14:11:54 -0500 Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6C037C0613D6 for ; Mon, 21 Dec 2020 11:11:14 -0800 (PST) Received: by mail-lf1-x12d.google.com with SMTP id h22so16736621lfu.2 for ; Mon, 21 Dec 2020 11:11:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=F7skkKHM5R05UGdkMu1617woWQOZ5h6BpD7foIYbeG8=; b=PbxVEfLQIdBUnkMz8ERfIGwUxDMjHlNsX3rI/peShOOxNNqrrZxcAfST5MipFKvgTR +z0/VxuVsKpsPdjI4C0BRa83V8Xnijkq7Q30JqjWoimyTL4Kd8qsaTFNYhIbaZbc1/e5 v76p4bWQ2wjLjVCau+vFsjOcm0hYrETF5eNxPd38lkvVcK79DUOdsbSd0k6Qxq3dVHvD 2pOBB1cdCew/Qw3/Z8LEyQg4/sNRnSIzDTFkWdaXwzWjXlSolMaZyfNsuvowAx7EoByq yyKrPGpjIDBTq+W1cAagipnCYLsTvzla0INZrwdvCH5P3KkuVZMCA+YtEicvNeLyXHkr nyZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=F7skkKHM5R05UGdkMu1617woWQOZ5h6BpD7foIYbeG8=; b=E3U/JmW/3OP4VuNQuWj076NPdTd4QA22Yk5Sc9nvEGFL202m4Y/Px/yKue3EBCN1km OkEXiJ4OXabA7qFQD89o5SmJmTqNga8WrHZ+T4sfU8BwFuUftzT2CgFvJQ9M5xD5PxEu Zjm6KaMvLAz395DVYcjLGmO9YrTH7RVdzEXQCjlgXjrZQC9Qog5xQ0Se09hXjdnB3QwH vWRMJAxv5LEJrCJAnfL+4hZKdASx3FdN91oObX5MsDqzML0VpNUoI9odGJIwdV3yLZkp PzW9Y1ZFi7k54WbmHKzsfnR8EVfGhazWBn6ClOs/Ajvb1Rpv2vA+Vvx9fDdw9XCBEtsT hfFg== X-Gm-Message-State: AOAM530lzpTVUbbGylsrtEcz/g9oAOZnLUau3Q9AhVfj/e8rCwmUMGK3 3zXk3IqXHs1UltPMsXI9lVAk91Loo5o= X-Google-Smtp-Source: ABdhPJwXTWtWmRg//EToJsu4UtbrnHuaYAtdKIE92ioRRx4+ApwrQSUO/oIoXR8+WDIgIIAGp83Pgw== X-Received: by 2002:a05:6512:3212:: with SMTP id d18mr7158359lfe.420.1608564066196; Mon, 21 Dec 2020 07:21:06 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.21.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:21:05 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 29/32] doc/diff-generate-patch: mention new --diff-merges option Date: Mon, 21 Dec 2020 18:19:57 +0300 Message-Id: <20201221152000.13134-30-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Mention --diff-merges instead of -m in a note to merge formats to aid discoverability, as -m is now described among --diff-merges options anyway. Signed-off-by: Sergey Organov --- Documentation/diff-generate-patch.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/diff-generate-patch.txt b/Documentation/diff-generate-patch.txt index b10ff4caa6c5..2db8eacc3ec7 100644 --- a/Documentation/diff-generate-patch.txt +++ b/Documentation/diff-generate-patch.txt @@ -81,9 +81,9 @@ Combined diff format Any diff-generating command can take the `-c` or `--cc` option to produce a 'combined diff' when showing a merge. This is the default format when showing merges with linkgit:git-diff[1] or -linkgit:git-show[1]. Note also that you can give the `-m` option to any -of these commands to force generation of diffs with individual parents -of a merge. +linkgit:git-show[1]. Note also that you can give suitable +`--diff-merges` option to any of these commands to force generation of +diffs in specific format. A "combined diff" format looks like this: From patchwork Mon Dec 21 15:19:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985129 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6DA9C433E6 for ; Mon, 21 Dec 2020 18:25:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7A71C23106 for ; Mon, 21 Dec 2020 18:25:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726661AbgLUSZh (ORCPT ); Mon, 21 Dec 2020 13:25:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52092 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726146AbgLUSZh (ORCPT ); Mon, 21 Dec 2020 13:25:37 -0500 Received: from mail-wr1-x436.google.com (mail-wr1-x436.google.com [IPv6:2a00:1450:4864:20::436]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8424AC0613D3 for ; Mon, 21 Dec 2020 10:24:56 -0800 (PST) Received: by mail-wr1-x436.google.com with SMTP id y17so12036468wrr.10 for ; Mon, 21 Dec 2020 10:24:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PaSmZ/RBecu+NFyjcFfJUxhbi320cgCBZWTJ9QUWVDw=; b=h8hwBtl7Vy/w56QcGoZP0Ej4JzpYo4PRTt/KExBwPDQZpYHz/IViGiNDCaSzV0p0Fg pW5EF0xGSE1QcDGZqOpVibPBuONHCxkLbxDaGqKjFMTA8mMqx5iGdJwYasV+8cnmukXB U3WnpWDojdZAO/vF3gQs0T5sF+NudlGsKYkbEYVaVkUCjcNLJS1aizStEpS9uRuNoxeD EQwRgALU+LpOaQVzPxVE/TmjoV4ZO8OHo/Nkuf0eD3/XTE2UW3QhGsJ63YgSbpQVvpp6 a6KlGD6lediwvA7GY1voAaHgbTOTkKukjqsnwk8+z+CyQtUvHCdjWFQAq4cdW/BqgOWY 0t+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=PaSmZ/RBecu+NFyjcFfJUxhbi320cgCBZWTJ9QUWVDw=; b=QMRDzCgzTU3ef9yUv8HdkdwUh+CNMtUfeofbZgX8zAR0m5eYTSpfZhmfUHc2actm7p Fx4n2yymR2qUb5GIpvzP+nPsYKzx6MaxSkU3v/rrSPFqAEc2KfHzggCRSluP8U4Gn1cG nGidDyW2kA9jzvyzwNO7AMwkjCEsDxA6Et/vASXIxm0cDlxr3ntbtld757cNl/WOt6Nu hgIh1Y1YSKfLjQyKNGD6JSltWciYELMawunuUQ+cVKY/1bb5uaDCYT2i8RPiANk+8y2e puIk6DamoQOp0SljhaHpDcwDOwzRSesC7pKvCkNevQ6XQy6k/Iao7aDEnRiwEgmPfmmk XR6Q== X-Gm-Message-State: AOAM531+zI0voRowMWDYXXIw6uPG/OAGRnARg1Lk/mJz0MTwu8+Ok7VM YhfZSdEBQnb/4Mt70D+PaBqeYBZBLNQ= X-Google-Smtp-Source: ABdhPJzVAyMyQINl8Tz3bgTsZdGNVhiBksN4Yuvudl7Na3ZaagdljbsalAvOmXAuokMXq3J5O9ceJw== X-Received: by 2002:a05:651c:cb:: with SMTP id 11mr7330969ljr.509.1608564067248; Mon, 21 Dec 2020 07:21:07 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.21.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:21:06 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 30/32] doc/rev-list-options: document --first-parent changes merges format Date: Mon, 21 Dec 2020 18:19:58 +0300 Message-Id: <20201221152000.13134-31-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org After introduction of the --diff-merges=first-parent, the --first-parent sets the default format for merges to the same value as this new option. Document this behavior and add corresponding reference to --diff-merges. Signed-off-by: Sergey Organov --- Documentation/rev-list-options.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt index 002379056a07..96cc89d157d2 100644 --- a/Documentation/rev-list-options.txt +++ b/Documentation/rev-list-options.txt @@ -130,6 +130,11 @@ parents) and `--max-parents=-1` (negative numbers denote no upper limit). this option allows you to ignore the individual commits brought in to your history by such a merge. +ifdef::git-log[] + This option also changes default diff format for merge commits + to `first-parent`, see `--diff-merges=first-parent` for details. +endif::git-log[] + --not:: Reverses the meaning of the '{caret}' prefix (or lack thereof) for all following revision specifiers, up to the next `--not`. From patchwork Mon Dec 21 15:19:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985099 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3BE14C433E0 for ; Mon, 21 Dec 2020 18:16:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F1E1022D49 for ; Mon, 21 Dec 2020 18:16:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726670AbgLUSQO (ORCPT ); Mon, 21 Dec 2020 13:16:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50588 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726666AbgLUSQN (ORCPT ); Mon, 21 Dec 2020 13:16:13 -0500 Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4F3BCC061248 for ; Mon, 21 Dec 2020 10:15:33 -0800 (PST) Received: by mail-lf1-x12e.google.com with SMTP id s26so25840343lfc.8 for ; Mon, 21 Dec 2020 10:15:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SBicHsZcsIwzg1GxE2sO1OE5cAj9Ysf8W24YnUbwq5s=; b=JjuUabO8QkUkulXDe6GYkJJSiQDGRrLZxNuWiE9tI9EFu4DaZVyLyTkFnQms1pBVXb 176g8+nU3Bnnb/F2MyWw1qCz+13pnhVCQI8oj3snyIW+flvgBMStWGfr+z117ikz8X+I fuHfBpjO9DlHfvF7ibshCRO4yEo8RKwkfD9tgGF2UhbQ7of5WLJTy7iK1ORi9B9vJg0R ehbjzQ9cJZDmqqSNvYuZX2asF7SGlIhCPBFD610/Qa+LgMtBLUdToUQdRtC/BylQPY6+ vvTTmjibocf5BTtZCd6GmLpaZg9IjMPcGt2PWEF6IxywL5VdfEu0dPUJrx3/cp6s0U7h CRIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SBicHsZcsIwzg1GxE2sO1OE5cAj9Ysf8W24YnUbwq5s=; b=H/LB0SLPdq0Zk+y+IWa1MByXT5ZyDRjxLVlnYsYEFpoM52La6z3ESQancBfjczfBYd HHEZpWsFfEEfmA+4Jni/eg7Ci8gLRpfDAhEpV6GNupQrBGY2QUPZZCrMhpKoynHncbQk O58QIPhpGJc8Kc0egM+SpH7MjBEPrPlNX6lnLJhk257XDobOJBKzanX20e+398knbEqH IQvl1LEgxmPTDwVfrbJblwT+RszX+SqC2sCFiXWXViLzlsdZinV/4sTFw96Ipd/VtHNg 55ayFQZceNnMLnXD6+iKwrgBhkWHYq+8IaIUA3LWUZ3tE3vPB9BqMX77NN7m+WJ3i1L3 Nb1Q== X-Gm-Message-State: AOAM532NTkzsSijZIvrYkklVcQs/3mfQR0s69EI1ZvYo59Yd40QCcMqU LXlZDC4nAsMjvR9j8NhWrZg4JFwlo/w= X-Google-Smtp-Source: ABdhPJzfE0ylbfRQvDfjF5aChGb2OKJiNxIUSUEH06hUiqW3g3VVN9z6+WylF6tyrQ5UxE21gbcgBw== X-Received: by 2002:a2e:8045:: with SMTP id p5mr7868906ljg.289.1608564068260; Mon, 21 Dec 2020 07:21:08 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.21.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:21:07 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , Felipe Contreras , git@vger.kernel.org, Sergey Organov Subject: [PATCH v3 31/32] doc/git-show: include --diff-merges description Date: Mon, 21 Dec 2020 18:19:59 +0300 Message-Id: <20201221152000.13134-32-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201221152000.13134-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201221152000.13134-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Move description of --diff-merges option from git-log.txt to diff-options.txt so that it is included in the git-show help. Signed-off-by: Sergey Organov --- Documentation/diff-options.txt | 51 ++++++++++++++++++++++++++++++++++ Documentation/git-log.txt | 51 +--------------------------------- Documentation/git-show.txt | 7 +++-- 3 files changed, 57 insertions(+), 52 deletions(-) diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt index 573fb9bb71e2..c995e82584f3 100644 --- a/Documentation/diff-options.txt +++ b/Documentation/diff-options.txt @@ -33,6 +33,57 @@ endif::git-diff[] show the patch by default, or to cancel the effect of `--patch`. endif::git-format-patch[] +ifdef::git-log[] +--diff-merges=(off|none|first-parent|1|separate|m|combined|c|dense-combined|cc):: +--no-diff-merges:: + Specify diff format to be used for merge commits. Default is + {diff-merges-default} unless `--first-parent` is in use, in which case + `first-parent` is the default. ++ +--diff-merges=(off|none)::: +--no-diff-merges::: + Disable output of diffs for merge commits. Useful to override + implied value. ++ +--diff-merges=first-parent::: +--diff-merges=1::: + This option makes merge commits show the full diff with + respect to the first parent only. ++ +--diff-merges=separate::: +--diff-merges=m::: +-m::: + This makes merge commits show the full diff with respect to + each of the parents. Separate log entry and diff is generated + for each parent. `-m` doesn't produce any output without `-p`. ++ +--diff-merges=combined::: +--diff-merges=c::: +-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. `-c` implies + `-p`. ++ +--diff-merges=dense-combined::: +--diff-merges=cc::: +--cc::: + With this option the output produced by + `--diff-merges=combined` is further compressed by omitting + uninteresting hunks whose contents in the parents have only + two variants and the merge result picks one of them without + modification. `--cc` implies `-p`. + +--combined-all-paths:: + This flag causes combined diffs (used for merge commits) to + list the name of the file from all parents. It thus only has + effect when `--diff-merges=[dense-]combined` is in use, and + is likely only useful if filename changes are detected (i.e. + when either rename or copy detection have been requested). +endif::git-log[] + -U:: --unified=:: Generate diffs with lines of context instead of diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt index ff83dff14dd6..727d20e1a2ab 100644 --- a/Documentation/git-log.txt +++ b/Documentation/git-log.txt @@ -127,57 +127,8 @@ selected, nor will they match search options like `-S`. The exception is when `--first-parent` is in use, in which case `first-parent` is the default format. ---diff-merges=(off|none|first-parent|1|separate|m|combined|c|dense-combined|cc):: ---no-diff-merges:: - Specify diff format to be used for merge commits. Default is - `off` unless `--first-parent` is in use, in which case - `first-parent` is the default. -+ ---diff-merges=(off|none)::: ---no-diff-merges::: - Disable output of diffs for merge commits. Useful to override - implied value. -+ ---diff-merges=first-parent::: ---diff-merges=1::: - This option makes merge commits show the full diff with - respect to the first parent only. -+ ---diff-merges=separate::: ---diff-merges=m::: --m::: - This makes merge commits show the full diff with respect to - each of the parents. Separate log entry and diff is generated - for each parent. `-m` doesn't produce any output without `-p`. -+ ---diff-merges=combined::: ---diff-merges=c::: --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. `-c` implies - `-p`. -+ ---diff-merges=dense-combined::: ---diff-merges=cc::: ---cc::: - With this option the output produced by - `--diff-merges=combined` is further compressed by omitting - uninteresting hunks whose contents in the parents have only - two variants and the merge result picks one of them without - modification. `--cc` implies `-p`. - ---combined-all-paths:: - This flag causes combined diffs (used for merge commits) to - list the name of the file from all parents. It thus only has - effect when `--diff-merges=[dense-]combined` is in use, and - is likely only useful if filename changes are detected (i.e. - when either rename or copy detection have been requested). - - :git-log: 1 +:diff-merges-default: `off` include::diff-options.txt[] include::diff-generate-patch.txt[] diff --git a/Documentation/git-show.txt b/Documentation/git-show.txt index fcf528c1b30d..2b1bc7288d5f 100644 --- a/Documentation/git-show.txt +++ b/Documentation/git-show.txt @@ -45,10 +45,13 @@ include::pretty-options.txt[] include::pretty-formats.txt[] -COMMON DIFF OPTIONS -------------------- +DIFF FORMATTING +--------------- +The options below can be used to change the way `git show` generates +diff output. :git-log: 1 +:diff-merges-default: `dense-combined` include::diff-options.txt[] include::diff-generate-patch.txt[]