From patchwork Sun Nov 1 19:33:05 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872477 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 CCA66C2D0A3 for ; Sun, 1 Nov 2020 19:34:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7C0FF21527 for ; Sun, 1 Nov 2020 19:34:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="cPGF4hIc" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727052AbgKATeI (ORCPT ); Sun, 1 Nov 2020 14:34:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43610 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726790AbgKATeH (ORCPT ); Sun, 1 Nov 2020 14:34:07 -0500 Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C90E8C0617A6 for ; Sun, 1 Nov 2020 11:34:05 -0800 (PST) Received: by mail-lf1-x143.google.com with SMTP id h6so14645693lfj.3 for ; Sun, 01 Nov 2020 11:34:05 -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=UdtQHjBNcJL3UN2wB1VmLveE4ycKuZLXDtFgxF9YfFU=; b=cPGF4hIc6+DI99yKG7FdnfI8WYZ4rOSHeVI4xGvqzmK3InuXxHEAo9WDpUzDxdgLnd lAi3S84A5d0bcC6XctSrlara5HNd3T1vwhPkA6wTFDlytkSBRbDcJaTw3xp8M2AgWPff WirI8PrG2bc19gkCKFdc6i5g+QoIBYmBVwLS1eCK8sYzYLRDlNAnZvBv1sxmEWWrx+9o Okq5SbNuq4KFc8xLXCzdVi9hdt9IwxGgJDVSBm4B9KU8aci3o4zZgmutNRQkAjecC8BZ vmUvL1btTWWcb5iwUNhwxT35Tjm/bhxGAl+efqgsF3vxNhaBXZKPaDpisAV/i/Orbl8W xkNA== 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=UdtQHjBNcJL3UN2wB1VmLveE4ycKuZLXDtFgxF9YfFU=; b=bMua6uc7rvpS5xUVNynQrmF75oEA+Iirnw7KqUIO4BT0nI1pfc8Gj0RrTy1cO3wZ0A LR/Sc3loEzfUI/MQ0lJQeP2OsdyzxlLWmTUBEpXmCAyqzT5j1wBf3xtpVdO2u9h2CS1s VFxPQ01zUaPUVIgPPANZukj0kqEDQLI0Ce3YolaPxQFw1LPmt5bd02MnbmDkKcQj5wY5 tGT3iNXLt9ikWu6NGD+dzNK0/cLkTgqwoMbzvlNAqvEVfpD/COXB9bYQhLe70IBOXCa4 aOFqdPrZh4iwWqIYWNqR9eNTu5Ybb7CmfNRRMFWgEAYjgiHqi3+WY424Tu1N5W1UosBc /sfA== X-Gm-Message-State: AOAM531VD/Cc330TRIxoBoRHSYMhPxrmyjMUKIxFYLG74sVZOpC8yUcS 403623cl7XzYy6UY+4ypTeU= X-Google-Smtp-Source: ABdhPJx04NJ6KoR3O5+wjF1shNbE+FOeKz6gGd9IY1kkxlQoZfjfXoo0gDnxyOKb76L5XDetf7XKhQ== X-Received: by 2002:a19:8889:: with SMTP id k131mr3466673lfd.0.1604259244271; Sun, 01 Nov 2020 11:34:04 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:03 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 01/26] revision: factor out parsing of diff-merge related options Date: Sun, 1 Nov 2020 22:33:05 +0300 Message-Id: <20201101193330.24775-2-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 | 66 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/revision.c b/revision.c index aa6221204081..a09f4872acd7 100644 --- a/revision.c +++ b/revision.c @@ -2153,6 +2153,44 @@ 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; + 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 + return 0; + + return 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) @@ -2349,34 +2387,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 Sun Nov 1 19:33:06 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872467 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 46FD1C2D0A3 for ; Sun, 1 Nov 2020 19:34:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A1F27208B6 for ; Sun, 1 Nov 2020 19:34:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="HTZeLBbw" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727016AbgKATeH (ORCPT ); Sun, 1 Nov 2020 14:34:07 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43616 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726790AbgKATeH (ORCPT ); Sun, 1 Nov 2020 14:34:07 -0500 Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9B5E4C061A04 for ; Sun, 1 Nov 2020 11:34:06 -0800 (PST) Received: by mail-lf1-x143.google.com with SMTP id a9so14659056lfc.7 for ; Sun, 01 Nov 2020 11:34:06 -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=Ima11YA7gg76Alny1FeAIaABExYxDCs74Kr9jE0Z4FA=; b=HTZeLBbwupak8N6UgYHM0k+RTl3gQ+lw3BIjnRAdHkFdWPl5MgKetNbGRfF1jfml33 n164tGo7OGnCsew7qc5q0IhQUfOI56R1IWnEtvMChuRP2+E73WcCV+WzUGZs+SfuVMTa vYJbOYbojEQOYzthIu8BidAnfo6oQmPvzeVRqvLaJwT1tRsT7iSlmBA+ttPy0s8sSbkn +wsK937RTK5IYhRTb5Hn1dAz/8fnPDmRcIJA2WBLUJHzkNHtTkKzNXBSbSKWmZWhsZju mV8tD+ycEvY+ibVsCf2qhXCRwDd/Ae+XGnHm9eTYiHiqflqQFxk1epoOIw2qTq37ThXx g6jw== 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=Ima11YA7gg76Alny1FeAIaABExYxDCs74Kr9jE0Z4FA=; b=I7I7wfI4ukpZBljedJ9ZjLHhzyVcophIc5FDp9yKiFjxFjY7pdJCRcaudNk16ymbF4 tujyekab0GRTJN1XEq5dvXe6sU1MihTUS4m0GxWzj0tvgE9lnHMFkmkTQpVKfvYfLP5R 49JMg3yRN0OYrHvnwrQOO5LYMSyT1WJqBg07SUfQlPyK8QYAFxRXFfHBOZsTE6M/2iqq vhk2ht31GOUosiANhWwfs0zUDiv+wdPw6kDMmpBA+tOGGfM1b9y4uGEm8/BSKL+D0tYP AC3pZc5RQnOuP4uHbNU4ocJyUSt4tD4MVZTlOJsfi47lJKJTgQXrhmzsWcMCeXeymOZv JYYw== X-Gm-Message-State: AOAM5311+UFlnRSWp1a2+xsC2GSqA8WAXGC+6JuI/s6ld78uxgvDpXai sD90JTVJSzcSHWrvqwYrPd8= X-Google-Smtp-Source: ABdhPJyUyIy1B2SyCp4uw/GYqx3HBLBwTIuKTgqcTPZNjya2Crrz9q39GfSlLenosnJv/Ur0Ejrt6A== X-Received: by 2002:a19:88c6:: with SMTP id k189mr4292129lfd.416.1604259245157; Sun, 01 Nov 2020 11:34:05 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:04 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 02/26] revision: factor out setup of diff-merge related settings Date: Sun, 1 Nov 2020 22:33:06 +0300 Message-Id: <20201101193330.24775-3-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 a09f4872acd7..739295bb9ff4 100644 --- a/revision.c +++ b/revision.c @@ -2191,6 +2191,16 @@ static int parse_diff_merge_opts(struct rev_info *revs, const char **argv) { return 1; } +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) @@ -2885,12 +2895,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 Sun Nov 1 19:33:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872479 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 EBD91C4741F for ; Sun, 1 Nov 2020 19:34:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8E45F208B6 for ; Sun, 1 Nov 2020 19:34:09 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PJ3ewDWu" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727056AbgKATeI (ORCPT ); Sun, 1 Nov 2020 14:34:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727033AbgKATeH (ORCPT ); Sun, 1 Nov 2020 14:34:07 -0500 Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 925BEC061A04 for ; Sun, 1 Nov 2020 11:34:07 -0800 (PST) Received: by mail-lj1-x242.google.com with SMTP id x6so12678723ljd.3 for ; Sun, 01 Nov 2020 11:34:07 -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=APfTNBqeu4NGszmHhOTAYqEdziEeMIGvS7s1xDEERjc=; b=PJ3ewDWulAm8L6GXthjR8i0tTiNio8Qrr3gmwovopoGTR3QqCM5ZbabZh2VYHD3MBA qxcV8fYORwPzMr4OqVGdnK3H0kQGau4/eCEThV+TLWbgnqOf70JZs78sh5lT2jKaTAx7 J/gMo4zd8C85KTTr6rr9FDK4VDNvc0+pUTHp4nUvkgsOhiquREn7X9p0xs00/DJwWV3s AUoayCM8R/IgNQbTlzf7pe8iv95Cu07PNM5t0otGktFWUoN1H3CLqRqf+gYu9lW6Y+dL Pk9DRvLc+wfsSxsJm/dZP+yEJaZwiO55P0iioAOxwB/fy/8Wbb9pne4MC3jKLmwC2zL5 1ehw== 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=APfTNBqeu4NGszmHhOTAYqEdziEeMIGvS7s1xDEERjc=; b=SjZJcaKkaQ4bUbRzJZEXKqJgx1Tntm1A+5fNsczUTqzKF4xhs2ezoGhKDRQZb0P6Ih l6syI7V/L/Pv5oaWhmDNFPPVKq1VPQPJXqWI7cd2oCLvJSiU57xp3wBwGkjBITqANyu1 bGXl69hVY8AG2yAK7k/V8GA8x3Wnl1JiyQogj55RSTQYYEM/lsBYPPhGvKC3qjgBzq2c sAH+q07gUW+05bOKWi2yMAo2PQTXn8xKqjXxumQDTBpGIR4aYt+QzCJnXiuAXVa+bX7s 20P+argF/TWD+EWDeuu8IraWK4fWt+fasfc4y5quaUUq0SCUEwF00gRpboFHvqZLn7Ib f1jw== X-Gm-Message-State: AOAM531xBd3vVSD8kUBrhGT0e41bsvY9DN+2GLDkwkrlkIRW0lXEZP/E 5HkHpPOX6EYRRaXeGaUP/nM= X-Google-Smtp-Source: ABdhPJwxM96xB3FvUH1oHOMP01Ds/98HjO5uuXRkqfznBjFLTZCANVcZh4xQ2O1Uj+yqMMFJEni3aQ== X-Received: by 2002:a2e:b530:: with SMTP id z16mr5472534ljm.245.1604259246159; Sun, 01 Nov 2020 11:34:06 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:05 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 03/26] revision: factor out initialization of diff-merge related settings Date: Sun, 1 Nov 2020 22:33:07 +0300 Message-Id: <20201101193330.24775-4-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/revision.c b/revision.c index 739295bb9ff4..bc568fb79778 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,10 @@ 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; const char *optarg; From patchwork Sun Nov 1 19:33:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872489 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 38F0DC388F9 for ; Sun, 1 Nov 2020 19:34:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EB35120B1F for ; Sun, 1 Nov 2020 19:34:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="rhpDXjHC" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727118AbgKATeK (ORCPT ); Sun, 1 Nov 2020 14:34:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727033AbgKATeI (ORCPT ); Sun, 1 Nov 2020 14:34:08 -0500 Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91406C0617A6 for ; Sun, 1 Nov 2020 11:34:08 -0800 (PST) Received: by mail-lf1-x143.google.com with SMTP id b1so14596054lfp.11 for ; Sun, 01 Nov 2020 11:34: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=grSGKk6XgsOZA5TlHcMTJbWxLxMLrRkarHdd03r2/ew=; b=rhpDXjHCWKMd8cSkd0vSEIBp6fJrxkljcSHRC5bNA2x+OD7jUyuwf1u4H0hb03T28w W+I1cgaS0qCtrHdbYAerVB0EV6icXU2vSmA9OyPXXTmnYsv5qiY2e4TB1/VoBo/SFkGi 7eLaDld/srdtBKJ26EQbhqI54Vb7708fyN1dVX/Uj94eoFLhQCKy/s/Wqr7xKF328GPI 0dlZ/omz1hFy4tzr/W+0g0AkDxcRrLdZcaRCkn6Zyk3YNBRl28df4GBx5zJ+cLYk1Ek/ Lm50Rw0k4Q0eJV3UFvgGeKzqcQqfA9+V0yhH4T8apLpf2EijdWkKODhByJmfxsp+HaFV SKOA== 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=grSGKk6XgsOZA5TlHcMTJbWxLxMLrRkarHdd03r2/ew=; b=NrFC9G/fGwnem9tfoMx848sc0sr2/Sl9/QgMdAwrza6fwlFAZfFRWq+ESJLr5bXNSc V43hgUxbCxsSvjPA8YPQ15vleDjERcJyzXGLQihgimvlaAVzx/ls8UyIsBSRRIdXLZAd RWnmlwSY2HSW16vlxbxV6+dpCYrhXv1RWag4egr8X4BevpAix9FHXSN95pkauTbWZriZ ii2dF8EwNDbxmB2QGfgx0RjezxpUlk1GwP4VCTSoLnjs57sat9/cX2zQdBZZMhwRLpKk 54cX8/v7vTYP9/JLD1pwLVsfKM3XGjXhSTE1MU5bdvqO2jMsNCOdNtQ+gzMpxKDGucus 8ZyA== X-Gm-Message-State: AOAM531tG7Pk5s63dWGUPVBeYCufianqGDyybrPykp8xkUeYhn+3JoOd e154cJ05CO2hFpZxi/FCXgtRFMS/pIc= X-Google-Smtp-Source: ABdhPJyl3tVvTUv5lTn+FdK1PA+Tg08iE+g4HqTgTpUPaabJXtz2hiFWUTMiGL4o4xNGfc/DtSZUOw== X-Received: by 2002:a19:e015:: with SMTP id x21mr5119229lfg.586.1604259247110; Sun, 01 Nov 2020 11:34:07 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:06 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 04/26] revision: provide implementation for diff merges tweaks Date: Sun, 1 Nov 2020 22:33:08 +0300 Message-Id: <20201101193330.24775-5-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 | 17 +++++++++++++++++ revision.h | 3 +++ 3 files changed, 22 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 bc568fb79778..ce90c2991657 100644 --- a/revision.c +++ b/revision.c @@ -2207,6 +2207,23 @@ 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 Sun Nov 1 19:33:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872475 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 1904FC4741F for ; Sun, 1 Nov 2020 19:34:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AE3BD222B9 for ; Sun, 1 Nov 2020 19:34:12 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Co6Sj/9/" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727129AbgKATeK (ORCPT ); Sun, 1 Nov 2020 14:34:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43628 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727109AbgKATeJ (ORCPT ); Sun, 1 Nov 2020 14:34:09 -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 72663C0617A6 for ; Sun, 1 Nov 2020 11:34:09 -0800 (PST) Received: by mail-lf1-x135.google.com with SMTP id 141so14649715lfn.5 for ; Sun, 01 Nov 2020 11:34:09 -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=VaM4m6zZ8y9f7azXEuR8zeljPWHkrI5z3xciGl3JqVo=; b=Co6Sj/9/czl9/9I1VnwVT8/InDxOcIBEWHE9YldTfUlvDaTSbvln02HMScxGDlNdcd ekOy/8TDfsf7ZEguC0sPbUan7c5NW/vfHMrFd96FXjE2gcUbmyF6GDtTnW8ByIrmffDw GDFcd+0HrJnJX+T5QExFnj1l5UF+UAvaq+tEYV3GRir5Uffa4mcxyR20EXz7llAVzKKf 3StUNeCFa2iz9Ac8lviWYOMttrinOq8wDpYifpNXCmBbQ6zrnM2zRvEkt+e2F7j0W5un vYjjsz28oKCyAI0LRqi1Gu+R4KM/EzW5xMGCN+gVj4z/LZPhaCwiszcaOLrZhJw+hpX/ IyQg== 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=VaM4m6zZ8y9f7azXEuR8zeljPWHkrI5z3xciGl3JqVo=; b=KjWWM815iw/fKZHHvb4gYqi9elIoOpbrNjqf1m7HrhrEogY570NSaisl89PV7WWV3/ C7zbwZPdfGxDK5UR3Xw1WS9LahwY8d4oqd13CouhpQhsxM2aV9sZ6Osn+kTdJwA19zeP n5CYLB7qsAO1wYGkIPPaBPP8rWb7KHVfcy+kGEeArLcXS8//Cak9uetMcoXTWd6ShOC8 XI1KtkiyjdZMmrq4AjYhy4g33XoRG00MFfcj+c/5I8mIiE3WanXbhyfMtQApk+MyewoR R9Rg21NaPM4Qz3mmwzGqpXfsHU4DpjNG9YIbcOJUCkoIBxVSoxs8mfmYeKthtuzmbI5D nT0A== X-Gm-Message-State: AOAM531vwba3obpe6muPbbTeJcAJLhrYKJG3GT7tLIUKCGzjKT1Gm/V2 bGXVUfbCNmKEJuXYAy3L/7AE2WucX9Q= X-Google-Smtp-Source: ABdhPJy2lOwFDgnjOjWHjA35wgC+cLtfARmgFXWyTHgPaFtbUCtF8sPA6m7UpKhLpHwka4GccIkCXg== X-Received: by 2002:ac2:5c0f:: with SMTP id r15mr4285698lfp.177.1604259247991; Sun, 01 Nov 2020 11:34:07 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:07 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 05/26] revision: move diff merges functions to its own diff-merges.c Date: Sun, 1 Nov 2020 22:33:09 +0300 Message-Id: <20201101193330.24775-6-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++ diff-merges.h | 12 +++++++++ revision.c | 72 +-------------------------------------------------- revision.h | 3 --- 6 files changed, 87 insertions(+), 74 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..8b9dd4ad5625 --- /dev/null +++ b/diff-merges.c @@ -0,0 +1,72 @@ +#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; + 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 + return 0; + + return 1; +} + +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..e0cca3d935d3 --- /dev/null +++ b/diff-merges.h @@ -0,0 +1,12 @@ +#ifndef DIFF_MERGES_H +#define DIFF_MERGES_H + +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 ce90c2991657..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,75 +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; - 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 - return 0; - - return 1; -} - -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 Sun Nov 1 19:33:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872471 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 6D90DC2D0A3 for ; Sun, 1 Nov 2020 19:34:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 278D720B1F for ; Sun, 1 Nov 2020 19:34:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RsX2BgJN" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727160AbgKATeO (ORCPT ); Sun, 1 Nov 2020 14:34:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43630 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727109AbgKATeM (ORCPT ); Sun, 1 Nov 2020 14:34:12 -0500 Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 598F7C0617A6 for ; Sun, 1 Nov 2020 11:34:10 -0800 (PST) Received: by mail-lj1-x244.google.com with SMTP id v19so7717614lji.5 for ; Sun, 01 Nov 2020 11:34:10 -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=Xkou6z8JgTQMAxcN6ZoKs5hW1hcfOLTXTU5A76qbu0U=; b=RsX2BgJN/h8HcT55QgtjOd2uCOQuGLnWaO4tbZexY6/mpSBtS0sMyW9V0+wF8hu8jS PxLqm4K2QFGOQPMvRobMeOuEP8OW+7IKyFuU+DIN5cMI1di0GwuxwzHFusO5jbXh3phb h6YAhdZPND0fUmCZDMcBIHBT9KwFLFmwuua+/YOsIZo1mxclLruzNejXYHmfeU7TVFW3 EEEpyEWIpivFNVRdUqqga7WtsHbwn6OXiXDbRdGTfJYAE+Dq5Cc6rWMBC+v2ZhKHzCLa AD1NVslKVyStrQ3EfCjCJ5bWctduBsAfT0O7dAU9oR6deC/rlIubPDChQz0vagDc8KlU 1cow== 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=Xkou6z8JgTQMAxcN6ZoKs5hW1hcfOLTXTU5A76qbu0U=; b=LlCItDDNy1cTH5Y1eanEB9c3gM2i4Ek1aJ25JQi0/qKf2LLFXkRCksCgSOw+sYkdGj XnKZgI8MtKf2A7Z4PtJaRMv5me9HWFYc8At7cn+THnzFNEVyGZFtD9s/euv+yidstKj+ zjlpISqIplDA3xeImWMUz3zQruUTPaRKFEu8sZarOyQ6nK+DX5jY8ppg6+83Eu1WXYjR UmdA/DCHPuYuUoTLHWOq4GV/xpuz2uNLDL65fmwMmXk4CT7hnDn7nPsEYO5LI7w1R00N FE/BmNK4RE2c4hdJX67WBP6wCfJhCLNtDDUckr/lg7svEutdVwm9+abm4HIn0EKml3+X c+xA== X-Gm-Message-State: AOAM530ngbGuIAeHFm6fDNBZ5mUaArQ9e4MXyCWvaEeUy2/PX6K7F2DI d11VkppmQ1io69yrtplGwt4= X-Google-Smtp-Source: ABdhPJyfDis/Vv8OA5CyCPWePQHRAoTVFpZ5urLWbTCfmRnoimfra43MzhEHatOK064sqB49TSmaNg== X-Received: by 2002:a05:651c:101:: with SMTP id a1mr4855691ljb.451.1604259248888; Sun, 01 Nov 2020 11:34:08 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:08 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 06/26] diff-merges: rename all functions to have common prefix Date: Sun, 1 Nov 2020 22:33:10 +0300 Message-Id: <20201101193330.24775-7-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 8b9dd4ad5625..85bf0b6d1d1d 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -2,11 +2,11 @@ #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; const char *optarg; const char *arg = argv[0]; @@ -44,7 +44,7 @@ int parse_diff_merge_opts(struct rev_info *revs, const char **argv) { return 1; } -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; @@ -54,12 +54,12 @@ 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 */ revs->ignore_merges = 0; diff --git a/diff-merges.h b/diff-merges.h index e0cca3d935d3..648c410497cb 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -3,10 +3,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 Sun Nov 1 19:33:11 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872487 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 D978FC2D0A3 for ; Sun, 1 Nov 2020 19:34:21 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 91A3520B1F for ; Sun, 1 Nov 2020 19:34:21 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aUDBwpIg" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727280AbgKATeS (ORCPT ); Sun, 1 Nov 2020 14:34:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727149AbgKATeN (ORCPT ); Sun, 1 Nov 2020 14:34:13 -0500 Received: from mail-lf1-x143.google.com (mail-lf1-x143.google.com [IPv6:2a00:1450:4864:20::143]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4F749C061A04 for ; Sun, 1 Nov 2020 11:34:11 -0800 (PST) Received: by mail-lf1-x143.google.com with SMTP id f9so14662997lfq.2 for ; Sun, 01 Nov 2020 11:34:11 -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=5pCBzPS8bIv9Loi9jdaZq5GcWqyP3eTWThTaodtOZtY=; b=aUDBwpIgZnVJRiX+1fDO5eNTnT6u6ICLK24AI3j1TRbIcvkZVVjA2VOtYByvbhshEV H2izbjGVg4eRIk6vJqZwvQzxzZp64D5137g1d/UX8cbB/92pLDoUPwBqLGwv/KSOJsW8 WL5+UfBZxQbqJw/XafIrBin/8OO3BZlV3/SC49RHExvl6csJ5dvoLXzjDDBwr4NDLpQg hvmJuRHMGt9DKxPnWXt1EzRNv0kgRnFDLbXgZb299BR7YHwYm71YQupLUMB3lQEc1qtP Jq7RND6Ua1fWpa3IyJWh6dOtMZ9/rTmA1pSed3cX3A0mM3Wi59H7kOGsYC8TJZx61rvF Y+Gg== 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=5pCBzPS8bIv9Loi9jdaZq5GcWqyP3eTWThTaodtOZtY=; b=rm3xYHaWc+LPy9kzCXHI8V9Ec2Dy/V6oLXKBx0z4uNUrd0gT1jNqwW3J0BTZF5uVYD fR/RWFi14FTamTLlXPyqgIBZkBAX8Js/QCIHS7lrfNjyHIjBAOOtC2fdBNVZDYqY8JeP carlBI3pv99ZzTTQ+Jh/M61Qmsh5FPTFgaVqHQCiYdJHJcXTrKc7HMyoNr70mz2TLDgW s5dZsVS0LQj/0+cY2Eyp/AeyF6pVfrhmOuQLYxkNionokRpohYizWu9Jp1dyJikeF534 mfxYUTA3Qtu4+shH0R/HnSxaWBUU+pFgDb7nMVvpfU04ITwmNNl4Rc3TQKhGb71bmnbe 82Ug== X-Gm-Message-State: AOAM530byBbddj05u59wnqw4qb41F+rl09sYUiOqS4nITEWeVgqfTd0T nN2mmElIfb0lAy5+QaB7VYsjO4In+RM= X-Google-Smtp-Source: ABdhPJw/1Eg0NNZ2OpUdeoq1dSA6v2V/Amwqj1Jp+JuO2LYHVfr84Yf860goZStWWWZykUHZ8Xjeyg== X-Received: by 2002:ac2:5f09:: with SMTP id 9mr4275488lfq.407.1604259249817; Sun, 01 Nov 2020 11:34:09 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:09 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 07/26] diff-merges: move checks for first_parent_only out of the module Date: Sun, 1 Nov 2020 22:33:11 +0300 Message-Id: <20201101193330.24775-8-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 85bf0b6d1d1d..9dd472803d15 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -54,17 +54,15 @@ 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) { - if (revs->first_parent_only && revs->ignore_merges < 0) +void diff_merges_default_to_enable(struct rev_info *revs) { + 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 648c410497cb..cf411414898d 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -11,7 +11,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 Sun Nov 1 19:33:12 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872473 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 B159BC4742C for ; Sun, 1 Nov 2020 19:34:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 73A63208B6 for ; Sun, 1 Nov 2020 19:34:16 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Iua2Gt+D" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727212AbgKATeO (ORCPT ); Sun, 1 Nov 2020 14:34:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43640 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727146AbgKATeM (ORCPT ); Sun, 1 Nov 2020 14:34:12 -0500 Received: from mail-lf1-x144.google.com (mail-lf1-x144.google.com [IPv6:2a00:1450:4864:20::144]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A763C061A47 for ; Sun, 1 Nov 2020 11:34:12 -0800 (PST) Received: by mail-lf1-x144.google.com with SMTP id a9so14659251lfc.7 for ; Sun, 01 Nov 2020 11:34: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=1F97epblfnDEQmCCs3FCvmUL1lsWDWBZOptv0P/Sm44=; b=Iua2Gt+DsbwmpeevJUeau47Wzjp8qDst3OjfwAI5n6pDd8pucby5GDLwn4zZl1kxKX 9sXunCNpV6lV3yzq0a6vdGOnuKZsIEhQSPFecAbiuJeXUX+gPgfrz+iDzFEuZHvXjYmX Lv0CSZh4CbI9alK049KQiusj33JjsKn9rmoAovcUp09binOADEmflFq4FRLFbqF2Bj22 rLi5vw/IkR0kuN1/7JPuS4ib4lUFgqh40IyFnxvEqy4PTedlzrllxO1nN83alOPlOGH7 ztmNy6pHjjeHCCxHHcZk/JNDTtIY1ZQrAIFyh5S8pRI7z4/GrR+rtfSluZAl32hdTqxG eHCg== 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=1F97epblfnDEQmCCs3FCvmUL1lsWDWBZOptv0P/Sm44=; b=Tuoo3uB0t63kVp3F6ygPgxJjsq3QxVPVdEgwRzmGTQqjILvmWWH9cWwLy9vFWm6Dmv EPiDjQXmTHf5+Vnd3eMJq95+qy5BjHHURYD9Dq79zXxjy9Gn0CcTNA0gi4Ld2FHjYjoP N+awkEbErW9U2yenXdYvx4qiJKBSUt4n+NpMX4iTZ09FH3TjVnFK1KeigB9EStxHuLJe DfyZh7ySmF2l9rAD41OJgfrkXix6UPNuOicIV659qXdk1VTDHAnjzQ8zdjsqptuXfbSv sRPmlu7rQw0dzoqtzF/P0Sl46wK/6jU/9JJpjV4+7Spk5LUPY5FMm+DIGFAehbt3UU+e z6Dw== X-Gm-Message-State: AOAM530z6uUjQo7nutxuwNTkrhMamaQV85aPBz3extrvjTXVZ7o461VK RKHcPnIy1zHL1fClcRTlSwppO6HxGag= X-Google-Smtp-Source: ABdhPJwoJ8XWakpHuAZ2kiyXX1T4m8iJInRZa6X8dSQ2DZbiDGFjHkwr8lELuBp8NrbIlqAsE9mi0Q== X-Received: by 2002:ac2:5486:: with SMTP id t6mr3872943lfk.43.1604259250869; Sun, 01 Nov 2020 11:34:10 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:10 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 08/26] diff-merges: rename diff_merges_default_to_enable() to match semantics Date: Sun, 1 Nov 2020 22:33:12 +0300 Message-Id: <20201101193330.24775-9-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 9dd472803d15..bb08a92e3b36 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -54,7 +54,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 cf411414898d..20b727bd734f 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -11,7 +11,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 Sun Nov 1 19:33:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872495 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 B9DC2C4741F for ; Sun, 1 Nov 2020 19:34:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 85FCB2225C for ; Sun, 1 Nov 2020 19:34:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Oyc0zU99" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727284AbgKATeV (ORCPT ); Sun, 1 Nov 2020 14:34:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43644 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727228AbgKATeP (ORCPT ); Sun, 1 Nov 2020 14:34:15 -0500 Received: from mail-lf1-x141.google.com (mail-lf1-x141.google.com [IPv6:2a00:1450:4864:20::141]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 42488C061A48 for ; Sun, 1 Nov 2020 11:34:13 -0800 (PST) Received: by mail-lf1-x141.google.com with SMTP id a9so14659291lfc.7 for ; Sun, 01 Nov 2020 11:34:13 -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=BverbUAkP36+LGnu0GHncDk3ADsANENXDrz9A+qMhKE=; b=Oyc0zU99Z6IVcy5OG1jTWL0SWaEHcuSzNVXMydmrywL4TJ7TUA9w+cwZOaRkAWXQ6f kkZgVroGK8QG/scqh86Jwe7Rupxcx39P++OSKRKTW/HBU3wHoQaw0LttOmb2/WSyIJ96 4nfpRNEsBWVBLVIQ7ly5RVumR47R70ueVZVyARL8CI7vYxx0DnkTYt8Xm6iR7MxtLClt JlfqrmgNj/rk8QKzjZTe/QFjzZABX+z2giLrdpRAbESO7XeYfq0Wig/OejpqDOl03KSl iHbqCM34SOxR+zwcUQMgL8x8rWtUGZjW3/H8PlrMLMBXE/cOG30i7/vniPR+AFnTfS5u x9ig== 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=BverbUAkP36+LGnu0GHncDk3ADsANENXDrz9A+qMhKE=; b=e1JeK0uky8KhLMhA81WzSMn6vusdgsMnz87AHFpYX1RGMENwLiOPkRxs58AVz+Zqa6 3rQHIlM3k3VGLgzZB0UaRc5p3NuN/QZqDC3wkCEKa9EkfNqD0N83vJbXbOKuWdgqtTwt iXLyuSb8ieV/d1DaS9Ut+2rOxnVtx3EPFNUnd+GweP01F6EhltpZHeFtobUBXgCMq8W2 L0bNb+cTUXaKNCyDSAeh8RnXqXU5hA74i0Lmv1NbV0sNfBPYWL32usqTytwQH7Xy9OX6 3D/vZ+y9czq5ARwpmC/9vZdn+2z+C9ZTxyBFS320fkLH2H/eTGZfamOcdydVumtcCkPS CvCQ== X-Gm-Message-State: AOAM533NJxHaQoWJ5tVy786EM3xfA65cbwWTRPzwzyTO+rOQBCIlPosX FLAWQVYyP3Vvto2eOBERjZc= X-Google-Smtp-Source: ABdhPJyPVzSE3m6c3cpYfC/QlAhw+qJEua+TboxhVtuyqqVafAHO4NLLNP4JewVCnq7CPsnfcckdtQ== X-Received: by 2002:a19:6b0b:: with SMTP id d11mr4856681lfa.295.1604259251821; Sun, 01 Nov 2020 11:34:11 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:11 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 09/26] diff-merges: re-arrange functions to match the order they are called in Date: Sun, 1 Nov 2020 22:33:13 +0300 Message-Id: <20201101193330.24775-10-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 bb08a92e3b36..8536941e0b56 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; } @@ -44,16 +48,6 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { return 1; } -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 */ revs->ignore_merges = 0; @@ -68,3 +62,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 20b727bd734f..4b023c385d00 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -7,11 +7,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 Sun Nov 1 19:33:14 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872483 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 86FFBC388F9 for ; Sun, 1 Nov 2020 19:34:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 49CFD20B1F for ; Sun, 1 Nov 2020 19:34:18 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="e+OwxhXR" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727264AbgKATeQ (ORCPT ); Sun, 1 Nov 2020 14:34:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43648 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727211AbgKATeO (ORCPT ); Sun, 1 Nov 2020 14:34:14 -0500 Received: from mail-lf1-x142.google.com (mail-lf1-x142.google.com [IPv6:2a00:1450:4864:20::142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 481A6C0617A6 for ; Sun, 1 Nov 2020 11:34:14 -0800 (PST) Received: by mail-lf1-x142.google.com with SMTP id l2so14678961lfk.0 for ; Sun, 01 Nov 2020 11:34: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=W47mVANbyr6U4QjohuRUI5qYDRLcugfgmhMpZzMRKhE=; b=e+OwxhXRGsAHiCQKTfPtVD2uD+6M9jeyctclZI/zty7b306EOige5yo45bKPRg0pbh DizfvxTtdWaSlHHc+RBzLI3z4qHXEqomJU4UGVbxC+ICLgdu2liM/5hcDH/pYTJIDD8c KpckTL4Nk3wz2wO+rj+y+/0aSw6LINnzUjrBV3h6r5CRz+hRXdwNwRumG3VtQsyt1mWI py4T72EgjAgoVcsWkcCXHxXWlZCQfEa1AYBw1G6dIVeYK2la7fkmHt09acrO4eR6kHW1 D8MeTBdRHeXcbTVj1wmcTfNIptmEwizXy/Dx5vgLDojszTXdIVfQ/hkfhenyw+wicqc5 mHWw== 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=W47mVANbyr6U4QjohuRUI5qYDRLcugfgmhMpZzMRKhE=; b=agBK89x9aC9gYApWpAzCpNkxGICnsk0YLnKmpsEW91Mr/kvGCoj1ZxOEv9vMLK4ODD oz/ZsdaZ3MGYUgCxnjSkLBkrmGuwICArF0xpIHFcSEfr35sYtt4IJ/JlWrEVr1LbhtFX +Q1G77wcmdcSeaGsiOB7PuE2O/Y9ZO0MgalLgOGMsRjRZM8AWmahB1TV3UvlnYPzlo9q vdVqDsQIb/Mk8uQL0keMQ7nqmrV61PFPyxAwmJpeRd6H8LuKF3cwpaKegRzDmSedTSuy 9dQwWlGLYz9/SrTayGiHjpXqfQ4nVWxCm/HiO8bwxIaRIY1ELuPD0zofYDC4uhm4dJUu DCBg== X-Gm-Message-State: AOAM530T1h2Y58Gr95vDZGx5+1oioeL5+tKMOaqv5RHFyqGhzN7jnizn 36kcLUvILpYYhvNBIJk82Es= X-Google-Smtp-Source: ABdhPJwS9HVc+jZ0CbjLncrDpInLQk3Hb1IGtQCRLYL86Yfy6hp6R+Ku/Q/wVrm0C2/ZhWZ0ztS8eQ== X-Received: by 2002:a19:4286:: with SMTP id p128mr4363155lfa.5.1604259252756; Sun, 01 Nov 2020 11:34:12 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:12 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 10/26] diff-merges: new function diff_merges_suppress() Date: Sun, 1 Nov 2020 22:33:14 +0300 Message-Id: <20201101193330.24775-11-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 | 18 ++++++++++++++---- diff-merges.h | 2 ++ fmt-merge-msg.c | 3 ++- 4 files changed, 20 insertions(+), 6 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 8536941e0b56..25bd9b12e667 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -2,6 +2,13 @@ #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. */ @@ -29,16 +36,15 @@ 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")) { - 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); } @@ -48,6 +54,10 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { return 1; } +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 */ revs->ignore_merges = 0; diff --git a/diff-merges.h b/diff-merges.h index 4b023c385d00..32720bc9b40f 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -7,6 +7,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 Sun Nov 1 19:33:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872493 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=-9.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 E3A61C4741F for ; Sun, 1 Nov 2020 19:34:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B00772225C for ; Sun, 1 Nov 2020 19:34:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GtfiQbAj" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727315AbgKATeW (ORCPT ); Sun, 1 Nov 2020 14:34:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43654 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727146AbgKATeP (ORCPT ); Sun, 1 Nov 2020 14:34:15 -0500 Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 325DAC061A47 for ; Sun, 1 Nov 2020 11:34:15 -0800 (PST) Received: by mail-lj1-x241.google.com with SMTP id k25so12651152lji.9 for ; Sun, 01 Nov 2020 11:34:15 -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=oS8sRU8XRe2sZyP1Nx2mZwbdjIr83+Gb1CaMfkAHGZI=; b=GtfiQbAj8qGBIQCGFRgmvcHuBOUEa1fTMppF/cdmQNn+Vs9M571fRsn2vkyjxSMgaA 7DhMsHFfhCaVsEpLiJTmn3c6f6f9NnMiWKGH0pCy3/iWx8ZKvxxXVNXXCjW/XlrXj47L cWr6DGzt6Tpq1z1ZbkQWI9OW0tlyyV4tMe2VKg03FUaGii0h1IDg6ei3ghd1WMlYC+01 12AZZx0pa9El/uK0Ihr9eP82o+eYPSHGgyU2xx1LA21fBD446Ex7mBZoj3up7m7yPxG3 IBfbAmD3Dpj9QznzsApu3q7mNjeNUOj9+71D8eo2VW9mfGb27qyqcSu1OZOV19boa8T/ /Gfw== 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=oS8sRU8XRe2sZyP1Nx2mZwbdjIr83+Gb1CaMfkAHGZI=; b=BTcfKWPkUpV0gXRhV/BQCLsC6DY7hFgGfKXru6sYO9iw71He32IHC5ggiZVcoeh2Lu /5wEzOmtr8I6gSlzTM7UqTz+bG1qNHgx/Y8Jbs3IOgs884HrypDty+3yEDaCddJ80WLA /Tenl7kAF3DA6P5s06DMI3Mstn0OnZ0Ri5maj8X+cVGGgKhmjhKEKOCaphRDRjJuMgMn efA3fet0kgt90nVxKL4zEcja9XgYygwvqf2A6Gjl74g0Itjzd7VsF35K2iFs9u95SsOy JCKTTxE048zPHWtD5+VSa3ExxRKmAoMi5VPYfSDwch0tausPLbqJObSGCB7gqHAYK8ag VNqg== X-Gm-Message-State: AOAM53284slK4oWAOIHVezq8xmG0aoaG5cFKkGMKA1gKluNpMSHyhfp4 sKtvEuViZRa3LwW6Wu4r0K8= X-Google-Smtp-Source: ABdhPJyhCJL1dX0VQnnzoO22a1UomfRlbp9K88LDWkZJEZxjLB5V6TscL8Tm49ewggl+klxUPJKzvQ== X-Received: by 2002:a2e:8056:: with SMTP id p22mr4794496ljg.437.1604259253709; Sun, 01 Nov 2020 11:34:13 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:13 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 11/26] diff-merges: new function diff_merges_set_dense_combined_if_unset() Date: Sun, 1 Nov 2020 22:33:15 +0300 Message-Id: <20201101193330.24775-12-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 | 11 +++++++++++ diff-merges.h | 2 ++ 4 files changed, 21 insertions(+), 6 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 25bd9b12e667..691aabadbb32 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -9,6 +9,12 @@ 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. */ @@ -73,6 +79,11 @@ 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 32720bc9b40f..ae1cc8ef9410 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -13,6 +13,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 Sun Nov 1 19:33:16 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872491 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 C0092C2D0A3 for ; Sun, 1 Nov 2020 19:34:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 866B020B1F for ; Sun, 1 Nov 2020 19:34:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="tI5JXhvN" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727318AbgKATeW (ORCPT ); Sun, 1 Nov 2020 14:34:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43658 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727247AbgKATeQ (ORCPT ); Sun, 1 Nov 2020 14:34:16 -0500 Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E57DC0617A6 for ; Sun, 1 Nov 2020 11:34:16 -0800 (PST) Received: by mail-lj1-x242.google.com with SMTP id o13so4348775ljj.11 for ; Sun, 01 Nov 2020 11:34:15 -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=BRDDXIQHJMdVGOz5ZDp1n4z+Pzgmxph7m92T/ENAeoo=; b=tI5JXhvNKW1EU8x8MZ4X9yy8wsjJABHDHMj/BvDdbYwMPS+ADt1ZRrv1/DXWhpyzcM NKj9lJ1o2W1Y6bxR95I71kW57z2W6jM26IU7ay7Ibt1ILptN/TU1y6PcBb07nNEWTA/3 PqZawt+L3FNkJnXhTSWjvvwmnvw8f8nXKdZ2l5/SOevQPWHX8R+2EVRmbWKzBCwBjNJ6 /2nyFO/1igZA0j7XAj0rdegypzP8KHkrESnfaFgqDgFkHl7xdT8HsmhMIHoKJc/4cF8a ez1axVVT5QgmbKB8LZoU1aTg+hDwzztdzFV2adEkLCMMUWzx4shohWDhVTcIIxQQKxLE UY6A== 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=BRDDXIQHJMdVGOz5ZDp1n4z+Pzgmxph7m92T/ENAeoo=; b=Jg6goUApmZPEH0MxyaSgtp72KVZl1a5bqTrBeatt7KHALhI2KoaVFcQuo3uYrh9mHw fkmZJmQBHvtpPlOWROP1R07cq+RvkuZtdsIBBNDJRyh6o0fev6TxSZNIEDnW5eygKr4j x5Gch9kzVtd/RgViX2K3ZkgYRoG4S2m9pUsrt3zAbydS9VC5ycu6xqZBFoSIuHVhzCI4 csO7TmVQDimiFLYWxBqLYM08iHra5a0WZJEuqoUp1Vx2UVEBwvGV8QLZfqKCcWzeZgdD sWuPSHOM/cX6qyuLyG5c7NvI23Hw8e+8xTlvLXJBDj/SSblQqWxeaAxA3ZiyVZB7e000 GAeg== X-Gm-Message-State: AOAM533aoj9FneAdA7wKbRTSp+moqFsruavnwdC2gm7miIY1RsjoyjO7 U74+ltee7DqEPA3clKZVapQ= X-Google-Smtp-Source: ABdhPJySqTLRnSyJs/ZL1q1DxoThhF4n5zTGQxOT5/1Sn+b02K9DJIudsZbcm8puFZjCtRhGF1rjGA== X-Received: by 2002:a2e:9188:: with SMTP id f8mr5390613ljg.333.1604259254619; Sun, 01 Nov 2020 11:34:14 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:14 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 12/26] diff-merges: introduce revs->first_parent_merges flag Date: Sun, 1 Nov 2020 22:33:16 +0300 Message-Id: <20201101193330.24775-13-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 691aabadbb32..63912ddedc76 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -67,6 +67,8 @@ 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" */ + 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 Sun Nov 1 19:33:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872481 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 879E9C2D0A3 for ; Sun, 1 Nov 2020 19:34:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4F61E208B6 for ; Sun, 1 Nov 2020 19:34:24 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="P6QFQ+fL" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727322AbgKATeX (ORCPT ); Sun, 1 Nov 2020 14:34:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43662 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727277AbgKATeR (ORCPT ); Sun, 1 Nov 2020 14:34:17 -0500 Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com [IPv6:2a00:1450:4864:20::231]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 16B39C061A04 for ; Sun, 1 Nov 2020 11:34:17 -0800 (PST) Received: by mail-lj1-x231.google.com with SMTP id m16so12662889ljo.6 for ; Sun, 01 Nov 2020 11:34:17 -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=6uBk7wgI2yeVqsDY6kvr2F6GiNd8dhXM9z7GG2OcM+k=; b=P6QFQ+fLAo07ui3/8vvNTTjbGx/yQRY4fHh1B+r0zlMwEKbkp0Kc9ud6XyXGPEL+M6 tfiLv+4fCt0F3CcOARuiLfYvvlqGkkyaczPBOjjZCIXH/XsfmYDwH1z7XTrsIphdTkjw pb7JTFJvy1fdFhWVmZajQ+jZm9fynyZjpLO/JRUZBEcjEQ1IdfDbGlB6M/pdMrU1LccF D4mvEwsiRcWR+E/2HrG3IAOYJVhu4y6hz18jZmhQG96mFBpjK7K9L92RcxjsQZ+cwcMA WHRiPWW/JC2/UWGtkj0iTsI2zZxtkpR77gMWWLm5dDKQlOsHWF/2wu6cMuLyY3LZ4oiP ni9w== 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=6uBk7wgI2yeVqsDY6kvr2F6GiNd8dhXM9z7GG2OcM+k=; b=WQ1uLoLtDDzBiLPC+kYBWSvM6C+mgc7C9KQR4U73HEqTmkko6G1VV0O6pcMfSHMRtD u0Wl/PPpfEZN3pcvIvWtPaO3Ml+JD/WO+O4cQH0qJJb7FLjxp8K7DKW8MB4/+zVt93ql iqjVPtVfmPslMNBppHHbTTXKI6+ZOcPqbV8n3esPaxdBOSUiIE9Yi5fvTjhCwqWu5GH8 bzcUh4yJW8Gu/6n0mXmx36hdXkql7Y7Xwi+0dDtke/RUz3GewWZi4ieolTK5Wy9SGCPi 593kYGORxXJleyj97SYu/cR5ueff8ggD7hFF/8g2DIpN+TlXsiQj3W85WPTzL55wSCv/ /ZOg== X-Gm-Message-State: AOAM532lPDRa1RN3hCMksJh++ZJBWBJ5Kw2++9yzvO3ZTVOKZiwzNTLi It60uO4hqpQRJ8cYI6EdGQI= X-Google-Smtp-Source: ABdhPJxLikUfOJjp+YEibDOqkTeq96FfSj2xhyGUepfSbhdM5g9fkeGakklb/dOKqAvFN0oYAjlABQ== X-Received: by 2002:a05:651c:1311:: with SMTP id u17mr5399327lja.177.1604259255589; Sun, 01 Nov 2020 11:34:15 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:15 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 13/26] diff-merges: revise revs->diff flag handling Date: Sun, 1 Nov 2020 22:33:17 +0300 Message-Id: <20201101193330.24775-14-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 63912ddedc76..a30c730a457f 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -37,16 +37,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")) { @@ -94,4 +91,6 @@ 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) + revs->diff = 1; } From patchwork Sun Nov 1 19:33:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872517 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 9ACFBC2D0A3 for ; Sun, 1 Nov 2020 19:34:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 64E42208B6 for ; Sun, 1 Nov 2020 19:34:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="UPb6/Zge" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727397AbgKATel (ORCPT ); Sun, 1 Nov 2020 14:34:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43666 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727283AbgKATeS (ORCPT ); Sun, 1 Nov 2020 14:34:18 -0500 Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E704AC0617A6 for ; Sun, 1 Nov 2020 11:34:17 -0800 (PST) Received: by mail-lj1-x242.google.com with SMTP id x6so12679022ljd.3 for ; Sun, 01 Nov 2020 11:34:17 -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=UPb6/ZgecXldo7P2rChHr+0rsChqy7e/sl++TlUhzbDf9TTF9VWxkKXmm5yYPJErRr Gbo5ClAK7N57v5psPj4NvYQuuDIKO7IwNIPxLqKzqYZEyhqoTYMchZliihE0xaLDW4M6 H5gk83wuOnGdF85mhBJmIOEa7ycR/bXo4Qr+vZsjpoRNs5pJWR8pqIeAqIwb7V7GxtDg RxpsZW6BDos33UYn3auGCfdZaAz5I4vgcHFgOUyEuAhHkxZeRLD6YOwz6fgTjS50sh3T C0SmnvoU2qKXwv353hSr3LN6e8qvpnmL8wE07TH0rh5/hVSLfMroAYxEaeGUqzKf7xEB Tkcg== 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=IvAibhVoqHLOwIeVuKyAULUhYgMgMh82NTBAFbHSzp4UbM6VB7FFhGTb+hJXp20nyH HkHwNf4LewFY/olWh0MCkhNtmvbKzMXRvP/MYiUxcsj/ZgXq/N//Pd7gdXuSpnGkSvtA h75fwDeyKNQefWw3s10XwhjEj3+82HGLnXsfwqmrc++RTkQqe8rhC/sE3wgfeZJcOisF 0iUuBA8O1CPITVYf08kdI9tSphNhY14fXM2/+ZGZWz/MlPWKrWVoh9hq60hGWc/6/AQA HOZOpqThqbw3GJP31YMVwn4aCWKE4rOMRdFqoBZGIH6k9PvfGR3hLPlik6UPMvl2xKoE kNGQ== X-Gm-Message-State: AOAM530HjaNm0KJpWfR22JEB9C+CsoRkQ72CPCjJgSkHSsqTy8v/eWE3 kv2+Z79/rW1YMnh3XM+lGF0= X-Google-Smtp-Source: ABdhPJyXKBiqNBz6AZf7JlXIjVRzYehuHYH+xAe2mSdTy4lV8xhcNV2YUlFgETiNhpK8Jl7Mf9VOfA== X-Received: by 2002:a2e:8750:: with SMTP id q16mr4824940ljj.53.1604259256504; Sun, 01 Nov 2020 11:34:16 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:16 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 14/26] t4013: support test_expect_failure through ':failure' magic Date: Sun, 1 Nov 2020 22:33:18 +0300 Message-Id: <20201101193330.24775-15-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 Sun Nov 1 19:33:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872519 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 7FFC3C4741F for ; Sun, 1 Nov 2020 19:34:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 387EF20B1F for ; Sun, 1 Nov 2020 19:34:41 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IRewfP5w" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727394AbgKATek (ORCPT ); Sun, 1 Nov 2020 14:34:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43672 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727286AbgKATeV (ORCPT ); Sun, 1 Nov 2020 14:34:21 -0500 Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com [IPv6:2a00:1450:4864:20::231]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 081B1C061A04 for ; Sun, 1 Nov 2020 11:34:19 -0800 (PST) Received: by mail-lj1-x231.google.com with SMTP id y16so12702554ljk.1 for ; Sun, 01 Nov 2020 11:34: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=OKn1seWiuDxvDzpbdQ3cyCw4XIrHg3bGLKppLhoSqI0=; b=IRewfP5wRqHLFsqWKoQDd//0o87YN/dzKFmtp0Fz8S5iviHkAWzvLmVcWa+SyyqdL9 dI20uzYNlImfSHYq71UxP+VQgivdN6Pu0ZLh4B8uczq+kaTjt+u2GCqhb7Apexl5HUZJ CyHYBubr4ggVoHXEAgraUfn/o6Tk/E4QcuiuPKCxJh35NtCekgPtJmrgDziLU4CMU4dK bV7Mg8AWnQYL62Cc+mcujK6AzWQkQOFHRQxsN6/we2T04FMWwWuhvHPbPBOLiasLi0U6 Nq9+jz5Xl8v8z8MfeUIyLRCP2lZYG9EG/+YlxxlEmB5yCWlJhhLP236UZhDJrFBVTiaJ 3+2w== 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=q6nW/Tao91IoS9x9GP7a9lm9aZt1qz+4dW8kYDSg0I+enaDcD5JN5dc5Kykx5Vm/ho szaMclu+xAYbhO3PEkjBLFLnTb1yVLEsH+BC3mK5lEg+yZwNKPZ2P2v3UWLRsaxpNRnv rscUz1cM+JA4++hs30w608NcmBdSbbvTgUHjexhtBpk9D8SGR6QpMQW5onMfQOtxuicM p8vRdYy+DyN8v5Gf8RX8D61Sd9kdA/tD7q3TOQ3hw7Q60souUFSrP0npcvyHPQzoRttI mY90Y2YOOmlmDIg2hTHrDlhm9FZLUXY7P506+H6Xba6C8G6QBieIQ+AQUEHyVngLvkxg CLzA== X-Gm-Message-State: AOAM531o1F150qRRkFeMwuUV+TrRg/ZomL3QV5q1C+mS4TrEeXylae7N hlhUDOLlnQYF7NZnsjcbz318t0BFjO8= X-Google-Smtp-Source: ABdhPJz6U87tg5AR15a6uGyDcG+8X6aj/WzXZXfoDTydlHqfnuLFt4Ov6mF7rrAo+cnAQXz502I8Pw== X-Received: by 2002:a2e:a41a:: with SMTP id p26mr5033595ljn.126.1604259257502; Sun, 01 Nov 2020 11:34:17 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:17 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 15/26] t4013: add tests for -m failing to override -c/--cc Date: Sun, 1 Nov 2020 22:33:19 +0300 Message-Id: <20201101193330.24775-16-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 Sun Nov 1 19:33:20 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872515 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 3E60CC4742C for ; Sun, 1 Nov 2020 19:34:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 059DF20B1F for ; Sun, 1 Nov 2020 19:34:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hh3ssEP+" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727386AbgKATeh (ORCPT ); Sun, 1 Nov 2020 14:34:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727287AbgKATeV (ORCPT ); Sun, 1 Nov 2020 14:34:21 -0500 Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D0D1DC061A47 for ; Sun, 1 Nov 2020 11:34:19 -0800 (PST) Received: by mail-lj1-x242.google.com with SMTP id t13so12602705ljk.12 for ; Sun, 01 Nov 2020 11:34: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=0S/9aSkb4vHujavlerag9xYD5gdMVALanWm3rUMyrNY=; b=hh3ssEP+Zaqam5ylsMVK0ct7bbAZaohUzUASGwpk82iXBJI6JJGSujcXRgdbCviTM+ cvP4k0B6XlesVGOMEPZ0qtsXKH58xKn6SUmZjm7tcq9p0ZQaKazFalXnihvjYRNoyo7b iKkbbjC+Wguy2I0KgsSzLyNr9LSlhnwk8p0Eqw/qhDm8yiAAXf1iDzmwiLJKmF7fBGr6 AWAx5svP4zQkLe0Cb6DPe9/sFYLOtb3l1xTdYMxCyxUbDzWKFjU0mfpwmWVu1mDps+4h mW1kSes4dDrHQcLjaesJV+dvVq6JrFiJRNdkwo2t+ZGufcTSSa4ytaWNf9ZtpAgYC0eR 5C1g== 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=0S/9aSkb4vHujavlerag9xYD5gdMVALanWm3rUMyrNY=; b=SoxhrC2BX9Lasx0Ss4Lch/A+bLYsYek0Z9wh4xhiQsHkETEmduIkX/YU5ZpUxyTBJo JWNaMzy2o6mejQ7TNI5tEl/qq9aKl14Gj3luUAi8/hOWTQg0BwwCTxvDU0ivp/hn5xOf RpA0Np6z+1OJDagcvVLm/Z9Aj5af5vxkEahdnm8LR5UZIhJNOyjr2YQlxMSRJDaTxm92 DfNgGSJX+AszXT+VIEJejaztoid1iN9CGEZmZE5AselwFLQYd9WubQi683LWPsFQXTV6 5PDHKAqqQFgI/rQE0iUQhtXWzv4bxEsGNRTlnbQidZfGsqV9i+/pg8qQ8XJ9gP6N0fH8 QKQQ== X-Gm-Message-State: AOAM533AU67ujncP03SZiWpY/3hZ6Bef3+KUeJvqeH2JWrRr2TEepdIU T5rVgr+020FTG30fB/sYpPWD99edBq8= X-Google-Smtp-Source: ABdhPJzgZ5QdsrhAEOGTKhoufFsJVvds8ptwbiCPE6Qb0uu0i7eO/oqWUo73N9ekSGpvKYvPvV/ybQ== X-Received: by 2002:a2e:9159:: with SMTP id q25mr5568315ljg.264.1604259258396; Sun, 01 Nov 2020 11:34:18 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:17 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 16/26] diff-merges: fix -m to properly override -c/--cc Date: Sun, 1 Nov 2020 22:33:20 +0300 Message-Id: <20201101193330.24775-17-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 a30c730a457f..f2b9ed789ca8 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -29,6 +29,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 Sun Nov 1 19:33:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872513 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 2742DC4741F for ; Sun, 1 Nov 2020 19:34:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C7F4720B1F for ; Sun, 1 Nov 2020 19:34:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="uk0tpvGH" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727345AbgKATeg (ORCPT ); Sun, 1 Nov 2020 14:34:36 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43680 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727298AbgKATeV (ORCPT ); Sun, 1 Nov 2020 14:34:21 -0500 Received: from mail-lj1-x244.google.com (mail-lj1-x244.google.com [IPv6:2a00:1450:4864:20::244]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DCF15C061A48 for ; Sun, 1 Nov 2020 11:34:20 -0800 (PST) Received: by mail-lj1-x244.google.com with SMTP id y16so12702599ljk.1 for ; Sun, 01 Nov 2020 11:34:20 -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=4+8V7Y46XOAS5DpdF3SLr1BaTYKu0peNkOrQhxAmHBA=; b=uk0tpvGHQlTtjKLc8EKt9HOwEbJhTnLs4asYbOVIS+gB9zHCEIIV6lp226k3GWXynk 19c+Wvs8YhSxayetdGtvS/WekhqAJma89kQ7F8uVfwtRp6NngdLUVvFII36nSq8hI07L UcCm+p/g5pjHPErzoW4YZUWH/51ChW7fhnxkC5WagYGoJpycV11a9vuSPv1rJRq1t04B R701Mvvpoa1Et1myAjPZ898cf4MDeCa1hXU/bfsfhMVdFQDyacGI9FH/Ykd5YTf1wvyp wvm8IcdkFh3nak+FhOwnSKpL2EoG+soFUcVx1gVACYM1QsXomBnrcbag2+xQ0ZJgge9E bxgA== 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=4+8V7Y46XOAS5DpdF3SLr1BaTYKu0peNkOrQhxAmHBA=; b=B4wE5RsCnpuDcCRCQaCRVhmNBe0SfR9LeP0ob6Now4oIz/YeMHOQ7079vbO/ZVtIPK y0+jdOnIHPGXncUl5b7gJiiPI54judLmAaXKcexe4sM1vMFZ0SaCNRjFlQsD1TEpGuOo jvPd/4fKfjXuHm98HlVC8rEnKT4I8tRs4LsvE4h3CEryC0fMqYti8qdX7mRJVIEkldRe qgL8BObghqJ9GAceb0MdVH70gsdGUS3uGJ7YGFrF+deGgcX2KlGDajjDV4QL1HsBdQ7z yhV6r6XUZLjrZfX8m5rkQHKeAdJ5BQ7I1k3grjIiuyQBUPELf+qL/1qGoT5TembYSWhI vHIw== X-Gm-Message-State: AOAM5328UTb8O8KRHdVZDbB4ftXC79T3+WlY8KzjNIlu6E157zFidlGV uf5wTBE5uSSW3P7bklHAIbw= X-Google-Smtp-Source: ABdhPJzUArXt2d8sETEGoZhoqDAH6fuwuCy493AG8oWIS/ZnzzxA3tZBsgP8BT2CIZG/njEBqIb1MQ== X-Received: by 2002:a05:651c:512:: with SMTP id o18mr4966034ljp.315.1604259259368; Sun, 01 Nov 2020 11:34:19 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:18 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 17/26] diff-merges: split 'ignore_merges' field Date: Sun, 1 Nov 2020 22:33:21 +0300 Message-Id: <20201101193330.24775-18-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org 'ignore_meres' 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 | 29 ++++++++++++----------------- log-tree.c | 15 ++++++++------- revision.h | 3 ++- 3 files changed, 22 insertions(+), 25 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index f2b9ed789ca8..19cdad1aa4a1 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -3,7 +3,7 @@ #include "revision.h" 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; @@ -20,7 +20,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) { @@ -35,7 +34,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; @@ -55,6 +54,7 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { } else return 0; + revs->explicit_diff_merges = 1; return 1; } @@ -63,20 +63,15 @@ 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) { @@ -86,10 +81,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 Sun Nov 1 19:33:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872485 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 8A76CC388F9 for ; Sun, 1 Nov 2020 19:34:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3F89E20B1F for ; Sun, 1 Nov 2020 19:34:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ZeLgiA+F" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727333AbgKATe0 (ORCPT ); Sun, 1 Nov 2020 14:34:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43684 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727309AbgKATeW (ORCPT ); Sun, 1 Nov 2020 14:34:22 -0500 Received: from mail-lf1-x144.google.com (mail-lf1-x144.google.com [IPv6:2a00:1450:4864:20::144]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B551FC061A49 for ; Sun, 1 Nov 2020 11:34:21 -0800 (PST) Received: by mail-lf1-x144.google.com with SMTP id i6so14670247lfd.1 for ; Sun, 01 Nov 2020 11:34: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=0W3us1d0G5MzwFNR/Pz+9/j1tIqVyxQx+lyRwVD3uME=; b=ZeLgiA+Ftxl3x8JiFQRvs16NPgG/RIRqoQnIq7xUpcbx80Z2H/jkPKlYod0mhgnJI0 PMICfG43yDHNLVdae5FcSmp0mG7GPMR6TZPxrxOpvEwnHv/JYceoAJ2EUK2t+OtBWlHg YS+UZF/XufH2z385VQ7jUZYi51o5tAgF2GoHCXWsPieDbuArUIwKxIp1eMCa9T9yW60a 7jli7Xvq4xEyr25QuAlCZbjTSs9srw2lL7tnIV4jUvNRKXe+jzZ/c8N4RmKv4vNfTmxL +XYvxrKOW33Tu7MONIpoEEOBJ4kHlt4vuoKsOUpS8wTBiM3OzXP3FUXb//G9lIJYU24T D5DQ== 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=Hf0FpMcGoPqvKoIJAZMj5fZyiBgi0Vmi9fAKQVlK8U2IJyVRwVrUqOJ6gqZHUhVs7A mrkS5alRbvd6WME9FDumynOGq4lvQrLem9Dc0+s6a/I+edP2XE4rmK91cC1rEJCakaZp T8jsuIm6lRxrgtNIDCSs0rqqBMJ0uG6j4MuYLmtOG1lXxnaeHbgs3p8CBETpFTI+pqv7 hvE/jmSQYct1GONfsNKjYKEczpJJsQ0HYPQVaWLcWuf2M9UjaTIh6YatnuLEUtf/DobJ psDDSvs5+dulOJ5+02UwKGgLAf/0NI7s2k//PZAIOtoXwOFT7Hw0jjnQqGebsZu80gBw w+lw== X-Gm-Message-State: AOAM533+Fqv5hN84tZX3IVf25V/HfplrueFaxbvDo5b62WbuD0G1/eGS LNSypXKKpohq3mSJuwUyeZ4= X-Google-Smtp-Source: ABdhPJzZ38OBJw7bX82yUcZSLgT6gs9FdRpvf4x9vY3lIKBwBJdfDqnS+QefxaNiuK6QuH7P+KTJYQ== X-Received: by 2002:a19:e45:: with SMTP id 66mr5000828lfo.376.1604259260286; Sun, 01 Nov 2020 11:34:20 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:19 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 18/26] diff-merges: group diff-merge flags next to each other inside 'rev_info' Date: Sun, 1 Nov 2020 22:33:22 +0300 Message-Id: <20201101193330.24775-19-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 Sun Nov 1 19:33:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872507 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 010BBC2D0A3 for ; Sun, 1 Nov 2020 19:34:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B2F0F20B1F for ; Sun, 1 Nov 2020 19:34:31 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="awOlns6i" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727359AbgKATea (ORCPT ); Sun, 1 Nov 2020 14:34:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43692 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727324AbgKATeZ (ORCPT ); Sun, 1 Nov 2020 14:34:25 -0500 Received: from mail-lj1-x242.google.com (mail-lj1-x242.google.com [IPv6:2a00:1450:4864:20::242]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BFD4DC061A4A for ; Sun, 1 Nov 2020 11:34:22 -0800 (PST) Received: by mail-lj1-x242.google.com with SMTP id k25so12651375lji.9 for ; Sun, 01 Nov 2020 11:34:22 -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=2/q0OLuo3ZBkTFZsx8VHkm99h/P3ZfqkpkDWoYxEBBw=; b=awOlns6iNIhzwKbMNoIgEhHQ1KTMuEJoToEKjJusa7oyZgLDiif7wUcPWrkHLvV86x hvwoL/oOH/wuQyGkbiNG3+4dHrXa5cmVxf3SLnLzN/giS8KQhQkLAjUluJKhQvSNWwbN +Ri1sW7x7u2/LZUEe5CR3+T7MnhZI3WaHPZFc4TYUcPiiETvS+a+68CAJFfaiMK2Lk9z eCkhGG+yo6LGOqkPli0jJ/EP4WnR9NmfiBy8bgPqbRjbiMk9rZN/sD8Kky507877W7De LlF2HjJWETt3KHtcUq3gy+gBD4gkPETAkNCdFMyx/jwwIqEwZTwI9Nuu4Y3vASupvv/2 Y6sA== 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=2/q0OLuo3ZBkTFZsx8VHkm99h/P3ZfqkpkDWoYxEBBw=; b=QOmjo62wTTxJztGnllnrqXuLnnygX8NN7wZ87hGdRWHNIUfMgopm8/YJCN8TFfi0TM EYWGCiLIImdK6AzbXvlio4mXzQdvhWIJsyNJcIB/c5cFIOR1o/bLoL+RRpTF9BjjhSfN dZTQgoKmgY2kmgnHUGqf/KS95qFlQyWSITm1AcDD4RtF3PM3n71ctB2S8sR90thd0NNf hED471rxnBA5Iy52CZj5f8w9kjywZhu3sWN77pw/chx9DvVhf7gbZ7yEP11CNpPKQ6Lg IKOb4M7jRuXM80MvcNEuNxGBWUAR514jatHONBWTvwl4CL6h/fflxYiOWkirKlWzGD2Z 2fHQ== X-Gm-Message-State: AOAM532SZqMp9bGzOGoF9For2MZdnT10QCYoway/zHuinW4dNZAprMgt 7P+++VlJXJ8d+q5soeIWZBw= X-Google-Smtp-Source: ABdhPJxvwloq8LJBCbhg/jCX2VaHhJIbcwKEeR9o8iTwpVQeYwER+doaAfd5tNFJMQ7oUsoktNfy4w== X-Received: by 2002:a2e:98c5:: with SMTP id s5mr5226447ljj.268.1604259261297; Sun, 01 Nov 2020 11:34:21 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:20 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 19/26] diff-merges: get rid of now empty diff_merges_init_revs() Date: Sun, 1 Nov 2020 22:33:23 +0300 Message-Id: <20201101193330.24775-20-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org After getting rid of 'ignore_meres' field, the diff_merges_init_revs() function became empty. Get rid of it. Signed-off-by: Sergey Organov --- diff-merges.c | 3 --- diff-merges.h | 2 -- revision.c | 1 - 3 files changed, 6 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 19cdad1aa4a1..29818abcc00e 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -19,9 +19,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; const char *optarg; diff --git a/diff-merges.h b/diff-merges.h index ae1cc8ef9410..9c69b8f3bd69 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -3,8 +3,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 Sun Nov 1 19:33:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872497 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 276FAC4741F for ; Sun, 1 Nov 2020 19:34:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id DAA41208B6 for ; Sun, 1 Nov 2020 19:34:28 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="u5ynb69H" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727342AbgKATe1 (ORCPT ); Sun, 1 Nov 2020 14:34:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727277AbgKATeY (ORCPT ); Sun, 1 Nov 2020 14:34:24 -0500 Received: from mail-lf1-x144.google.com (mail-lf1-x144.google.com [IPv6:2a00:1450:4864:20::144]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A1374C061A4B for ; Sun, 1 Nov 2020 11:34:23 -0800 (PST) Received: by mail-lf1-x144.google.com with SMTP id v6so14583584lfa.13 for ; Sun, 01 Nov 2020 11:34:23 -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=mxL+yxGkREL9Bx+2kD827DLOziGiEYPg/QyJ/uLUuh0=; b=u5ynb69HtGnrE/jy6cyEFJ5qHXmRpd/L86W+CCc2mj1JZ2X3cMSKUFdwGvNfud32D6 C5n9YXVlAmR2S8FyCbKbupiNw+XfN+ENEVSiASs+1hEwitLnS5hn1nCRwUXC/G7RZ/BI HLq61GpjeTfcMNwUnas8rg0VlJ3ekmEAX1H0NydoHZgMyy5PayT3+99OM56tPJCTBDjx yjE9mK9UpymquSibCQvAFnygyAsSLRbqjNaaKPUi4wJi5ti9fZzE93W9ygfX1wtzZx4n 8CBpig/s/QFOLQ9fb7VkHLlh7FTmsm2ZGyBIfed0ZzZ2ommF2oXJxU/IgN+GnpNow/sU MSHQ== 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=mxL+yxGkREL9Bx+2kD827DLOziGiEYPg/QyJ/uLUuh0=; b=eI0CwFwhTBV4B1odM3pdRvx7+SKs+pt+iuzVwCJcXx5epw01L3slEO/ZtCtNhgo7mU SHHY6QzICQ7Gaorxpg91MFbFbrWGUe+PdupIkhLa9DPIkwSo+YBmEUKu0AkiOlm6Iw6F BzcIsFqaMmNDqXxBSpxQ5ygczbd/R90URX4QWItxpDPX0Rv+EBEdo1udSFJeIrF1B7lF sL8ufGcsRA4OBW+A04mwfc6nrW8veRGDYjGOiZqS8Cr1ENfQtSHrskqoHKXD7TXPfb2r 0yQ6Gh8L9IqAhwJGXpw41WvMATcfSo/z2ulMh3pIaIPbD/LZEAGmvHyoLOw3ysyhkOMO I6Xg== X-Gm-Message-State: AOAM533ErmQ9oJZDz8EqO0jGRfpw4uSy+5B7F7dHUj8smB570gnh6TY0 9gkRHefsmJfPE/zvjz9xpY+Y17TpZco= X-Google-Smtp-Source: ABdhPJxbMZM5tVC1oRl1HMm0WViRa9MjHO4MgKeCdchva1UXVmxvKax/Gvbx9nitYzaRV4C/6M/59g== X-Received: by 2002:a19:641b:: with SMTP id y27mr5085626lfb.325.1604259262187; Sun, 01 Nov 2020 11:34:22 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:21 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 20/26] diff-merges: refactor opt settings into separate functions Date: Sun, 1 Nov 2020 22:33:24 +0300 Message-Id: <20201101193330.24775-21-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 | 59 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 29818abcc00e..8c22b447f106 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -9,11 +9,38 @@ 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. @@ -24,31 +51,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 Sun Nov 1 19:33:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872505 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 31C26C4742C for ; Sun, 1 Nov 2020 19:34:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0020320B1F for ; Sun, 1 Nov 2020 19:34:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="EDfRldJ1" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727354AbgKATe2 (ORCPT ); Sun, 1 Nov 2020 14:34:28 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43698 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727331AbgKATe0 (ORCPT ); Sun, 1 Nov 2020 14:34:26 -0500 Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 79D32C0617A6 for ; Sun, 1 Nov 2020 11:34:24 -0800 (PST) Received: by mail-lj1-x243.google.com with SMTP id t13so12602832ljk.12 for ; Sun, 01 Nov 2020 11:34:24 -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=ZH5TpUqiYqsK3RaK+u1B2AkyRuJBCgr1RNjJ2h3qVFM=; b=EDfRldJ1u/Wnxwz4AISdU6VrG+Z8+wpL3qcHgTJCnpxRCfk7PFpONUk/Obib5WhNn6 fb5DuxoF1J+bLayDzLTfOB9XXRJt77/2J8hzjou748UTOeqP0c1a13d6xEr9bcJ/2Rib NR0jLFDLNwjnyS48iRWElle7rH/ZZkqT5IKaTlZEEcMQ6LjiaD1KfhzYl81s6caqVGws MmwDriEE+2PrbS8BIyK1nUwsv30+OO+npBoTlxg5QI79yuEGIBl9C9hjACEkjMkjTZGw /9XVg6rPLmyqaKnljZHL6r7IBW0e6jRQbRxcJkipIqOYJzi/sNrmFSdk9IrMSJtqLYZ0 ldqw== 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=ZH5TpUqiYqsK3RaK+u1B2AkyRuJBCgr1RNjJ2h3qVFM=; b=WWJECVS0+rboOKXLE+0fpfqhSIsDAPFOVgitxEOcJ+tMw8cv45F4/HjBQyLPu2dBiY oTCVYmq5wJeZU3js7rW7Gcxob3xSh8dtuuUuGukflRq5kTM+hmnamyn1cJ778U8nZ4Zk mY2B3xMU0v4GQklVtTVH2NBxFkhQpfsTf42bToyoKxOJ9ZseSTdsy9dGIswY0a2arVOo IuOYJr6hB/7jpo3z1QO70bGK1WzpkD4fSWFju2rqX7p7sR5Vnv4e9gau1HLjrtBibbSc SpL0AFeQ7+r2uz0hNy4s6hL7w/6pUJ21K7P3i+XdCKc5zb8p3DvSAUa6dJedLnXoeeAF k1Tw== X-Gm-Message-State: AOAM532u0jRVWtyt+L/5rDydv18qMEwxbVAA6c4VxRO7QIiG3f+Q2sqg RJlfFNvEKo2QWMHlzrtSjw0= X-Google-Smtp-Source: ABdhPJyujW8fFZAujFP7zkJKW2K/DcuW0c+3nR/bdGyK58csbTjei/nRrKjTbZVtlIcbm38r82IjQQ== X-Received: by 2002:a2e:a492:: with SMTP id h18mr5345821lji.103.1604259263047; Sun, 01 Nov 2020 11:34:23 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:22 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 21/26] diff-merges: make -m/-c/--cc explicitly mutually exclusive Date: Sun, 1 Nov 2020 22:33:25 +0300 Message-Id: <20201101193330.24775-22-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 8c22b447f106..db2217171442 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -7,6 +7,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) { @@ -25,11 +26,13 @@ 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 Sun Nov 1 19:33:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872499 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=-9.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 979D8C388F9 for ; Sun, 1 Nov 2020 19:34:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 59A0120B1F for ; Sun, 1 Nov 2020 19:34:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JLt63/uO" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727366AbgKATeb (ORCPT ); Sun, 1 Nov 2020 14:34:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727334AbgKATe1 (ORCPT ); Sun, 1 Nov 2020 14:34:27 -0500 Received: from mail-lj1-x241.google.com (mail-lj1-x241.google.com [IPv6:2a00:1450:4864:20::241]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 72928C061A04 for ; Sun, 1 Nov 2020 11:34:25 -0800 (PST) Received: by mail-lj1-x241.google.com with SMTP id 23so12637700ljv.7 for ; Sun, 01 Nov 2020 11:34: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=vcV0vglRx9nmDckBNMq7BEzj7qmvg5JGZ1EvcOSq/Uw=; b=JLt63/uO+emlMpP54GFdTr71rMJq3bAUAAXG4bIrWuS54EG246nYrKO+nPcuVHVpwU ZO9NDqf3c+UmUTu0dOOJpaeSceF+f45CObUikhGf1bCSaxTzXaxnOFLSCYJYBcFFv+ng A/A6+GCYkpr64HnfXF38bjSOobBsGT6gH7T8DuSF7TQYKylGWOD5ww0jx7Ah+d6Y1uGE Bnj5sj2lc37m1cGU3RX5D+3GA6hwAkcWK/m5ztxIoC8HPncLfStsW8DgBTgUhFqINyB0 nBv4tdxjKRVaiVL4jSJQnENDsbGb/v2Fj2+e0Z4ZGBa6ohESHcA+SpBnGjAkUqEc0eta wqGg== 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=vcV0vglRx9nmDckBNMq7BEzj7qmvg5JGZ1EvcOSq/Uw=; b=nKMV53P8zABu7qLUHKumj1prcKb5Ms5lmPwESTASJI9GyL9wsCRS6rEuKr3t7VGbkr fyFLBH2Kc5od3bQ/FpXp9iX82yAU1ywGU1PTsSSZv5TngP4C7fhsdXOVxNbOzwuF9GhJ RoqU9RdEHQvM10O5Z1G2JiEyj96UR3qO0zEcyANY3fW8Rpz1n1fbJDGvdX2S4Tw1OltJ FJ5wzZ3EPAyeVJlu/ybj9JWdY+BjA2w1lYkuh+AnQVBdZlG0vBxkqzrphRDeCaJ6Plj7 lCObdpY9lLNGj1DI2KfQdR4Ep/P0s7yLzQ3ExSbzAWFjpbhQ6BMvU0b5ufAsvaA7NUlQ O5kA== X-Gm-Message-State: AOAM532r5BvB72cijnSvaAjrbHYFH4ZtNnYsgYEB6qpH5T7jbS4NbFws y3dtpug87nPUznLI7+xnkkQ= X-Google-Smtp-Source: ABdhPJxCaEubufK1O3WJGf4lIKewIOjfzu2DGoYc+kwkhGSAlDPkO+TfnmCrvsr9dYM51nS1jrwdBQ== X-Received: by 2002:a2e:351a:: with SMTP id z26mr5343464ljz.3.1604259264025; Sun, 01 Nov 2020 11:34:24 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:23 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 22/26] diff-merges: implement new values for --diff-merges Date: Sun, 1 Nov 2020 22:33:26 +0300 Message-Id: <20201101193330.24775-23-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org 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 db2217171442..5c35369f7a8c 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -15,6 +15,11 @@ 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) { /* * To "diff-index", "-m" means "match missing", and to the "log" @@ -38,11 +43,19 @@ 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 (0) ; + else if (!strcmp(optarg, "off") || !strcmp(optarg, "none")) suppress(revs); - } else { + else if (!strcmp(optarg, "first") || !strcmp(optarg, "first-parent")) + set_first_parent(revs); + else if (!strcmp(optarg, "sep") || !strcmp(optarg, "separate")) + set_separate(revs); + else if (!strcmp(optarg, "comb") || !strcmp(optarg, "combined")) + set_combined(revs); + else if (!strcmp(optarg, "dense") || !strcmp(optarg, "dense-combined")) + set_dense_combined(revs); + else die(_("unknown value for --diff-merges: %s"), optarg); - } } /* From patchwork Sun Nov 1 19:33:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872509 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 E8F7AC2D0A3 for ; Sun, 1 Nov 2020 19:34:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AF53720B1F for ; Sun, 1 Nov 2020 19:34:34 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ty+Cs7HK" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727367AbgKATed (ORCPT ); Sun, 1 Nov 2020 14:34:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43698 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727277AbgKATe2 (ORCPT ); Sun, 1 Nov 2020 14:34:28 -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 7B688C0617A6 for ; Sun, 1 Nov 2020 11:34:26 -0800 (PST) Received: by mail-lf1-x131.google.com with SMTP id i6so14670418lfd.1 for ; Sun, 01 Nov 2020 11:34:26 -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=VEpf1BvZDlnmGQIdDIY7sWIcaQ1X1Jpqt7apLJCnNBQ=; b=ty+Cs7HKSGMk7Gm/kadWjEsd1/7lL2xaIhqanEpbYyPoGJlZN4IGkt1+ArqxwdKxuo c7FrIsmJE0siFrbhuMHkvSD+QFF4T7wiDAkTxBMJhRWFBx2ZpK13wkjwkMDPCG/HCYtG 0IYa6Dp/AH1WVEqAQcjX6FQJMWqzl9jyi5GrHjWXAIstAiY797QP2p88xobCW091xOFk vjiQHednXRY1tWNZdiHn8rdaQ0lf9KloXcTVWlsNBk3bGQgNmfKNBByQM5TMj10OWLk7 xRnDhv/csI9aX/uZMQk3br1AYo8AtsfO+jL3pHEgEVG1Ih84G+T/NyoNQaMrwStj4AWT bS0g== 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=VEpf1BvZDlnmGQIdDIY7sWIcaQ1X1Jpqt7apLJCnNBQ=; b=CPd7ae+EkfTX87tRqHpJaXh8x5MKU8XD6vGnCdzRAyl36vFtL9FXkt3whCWJ8NpFWg b0wtCndshMoh7KRd+6x8BCy3PuoRw2cDDfPtolzGYwihLpjZkQ2vhxmrw86WsrOv2y6/ gphT8YAoXb+J4p0HxiAt7E+65jr33djCmkUMsMtjYU8zKL69K5Frp5jVoAzBg9HFfalN EKbgfjS1v5yUs0cZ6z5sIj29p7OQMRQytJ8Opg0PJcrpO0Mg0Hdn5kWUEK8lMAxgC0p5 4QVi8yB8YKONuGf1vnJswU2PMEqgF11mBY7NxinaCSCDEPFjvrYHNvwVE7Kmm9oHRzMS 8Y/g== X-Gm-Message-State: AOAM5323kaL8vCCxp9/GAQvMZRsL62n0PCsSpGodGyCqXBwgkiNJ70A/ weeVrN/Nb/vw7XXu3TLNBt0= X-Google-Smtp-Source: ABdhPJxr8SgQtv2ZIx0bmtWi0lXP5yg7yD15p3xWdQg9mM5BZTB5VQP+rqN5MvfDrL7e2sp5vbg7ng== X-Received: by 2002:ac2:5207:: with SMTP id a7mr4264377lfl.56.1604259265020; Sun, 01 Nov 2020 11:34:25 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:24 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 23/26] t4013: add test for --diff-merges=first-parent Date: Sun, 1 Nov 2020 22:33:27 +0300 Message-Id: <20201101193330.24775-24-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org This new option provides essential new functionality, changing diff output to first parent only without changing history traversal mode, so it deserves its own test. Signed-off-by: Sergey Organov --- t/t4013-diff-various.sh | 1 + ...f.log_-p_--diff-merges=first-parent_master | 137 ++++++++++++++++++ 2 files changed, 138 insertions(+) create mode 100644 t/t4013/diff.log_-p_--diff-merges=first-parent_master diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh index 8d8178a8a616..ce56a9349d1c 100755 --- a/t/t4013-diff-various.sh +++ b/t/t4013-diff-various.sh @@ -327,6 +327,7 @@ log --no-diff-merges -p --first-parent master log --diff-merges=off -p --first-parent master log --first-parent --diff-merges=off -p master log -p --first-parent master +log -p --diff-merges=first-parent master log -m -p --first-parent master log -m -p master log --cc -m -p master diff --git a/t/t4013/diff.log_-p_--diff-merges=first-parent_master b/t/t4013/diff.log_-p_--diff-merges=first-parent_master new file mode 100644 index 000000000000..9538a2751123 --- /dev/null +++ b/t/t4013/diff.log_-p_--diff-merges=first-parent_master @@ -0,0 +1,137 @@ +$ git log -p --diff-merges=first-parent master +commit 59d314ad6f356dd08601a4cd5e530381da3e3c64 +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 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 Sun Nov 1 19:33:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11872511 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 6C4D0C2D0A3 for ; Sun, 1 Nov 2020 19:34:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3A7AE20B1F for ; Sun, 1 Nov 2020 19:34:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qxR3SGBT" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727380AbgKATef (ORCPT ); Sun, 1 Nov 2020 14:34:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43692 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727345AbgKATe1 (ORCPT ); Sun, 1 Nov 2020 14:34:27 -0500 Received: from mail-lj1-x243.google.com (mail-lj1-x243.google.com [IPv6:2a00:1450:4864:20::243]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 790A2C061A47 for ; Sun, 1 Nov 2020 11:34:27 -0800 (PST) Received: by mail-lj1-x243.google.com with SMTP id 23so12637767ljv.7 for ; Sun, 01 Nov 2020 11:34:27 -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=9W0hLrOfmJHLxxseRkRkGLHrJsJGZBjpD6R06Vh/aWU=; b=qxR3SGBTBwee0fDnXaaIFwCco01PpcZXHsdYFzy4zby1oXcs+laBy6EdL72yp2Ris9 9JOsQwLxrXzOFOBmuxS8A4tFnuyi3BrWYg+Cthans6ulTkNG0gwcxgYw+Ib1Gnm+4RNh vU07wvb44V4nLlQi1pueWCaRfjNUPUPEKpf1aETUZ5VQSkGARGeoqmW0MJXcwQ9u9HCN s7BrUtvMmO1w2PFm+F1OpnQi6LbuAqpRyT7cdvYXqcypbT4OLZvq5SctlqlxWCbS0EiK TVljVgiTSfQNE+Dj6aHusyIFHkbhVHAdKP7CioYJafeJcWsJe69R/B/H48jYopJIlJuO +fhg== 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=9W0hLrOfmJHLxxseRkRkGLHrJsJGZBjpD6R06Vh/aWU=; b=SW6hYQh6U7FnIn0CY2R2sJsTVRDLb4QSPdcKX9lQRcO4dyr7npaMo3LP4PZnxAlFtz Ckho1MxO/2+h9bf5q/I+ng++0NdqARPzkLeAdMMkO3FPFfxfIk7kNl57638UUQ8zCp68 qUe2exDhOfTQU4eoi0dZtvtU7RgCxNfpaYfn2k1ygqzZj+EeqPwlk5EA21znam8ofClP y2eB24mhEcyLlmC1fBAmZ93MueoTWumTKin5fK7ui5CiS/9Z7UUHXk5Ys77UefSOgBaQ TwsypTGvkNTkrp3Qewp/ZAlQsGYJBlo/YsobB7wk40tVuq1la/BmBkaa3QC0vw1mOibF I1SA== X-Gm-Message-State: AOAM532bEZXnDlG17ZuCAI25skXRNPBuyiqEX0bGnXzXQ/3Qxk0C3oHR OkfjTPmsyc+rNDawcQxxFh8fPgvHZkk= X-Google-Smtp-Source: ABdhPJwTnvknYBFhcJR5iGVhsv3OudgGZIOWlJ1R6rnSQcsWNssSPDgo/2JteXHMm00wsBu5tnV95A== X-Received: by 2002:a2e:7c01:: with SMTP id x1mr5360556ljc.229.1604259265960; Sun, 01 Nov 2020 11:34:25 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:25 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 24/26] doc/git-log: describe new --diff-merges options Date: Sun, 1 Nov 2020 22:33:28 +0300 Message-Id: <20201101193330.24775-25-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 Signed-off-by: Sergey Organov --- Documentation/git-log.txt | 79 +++++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 33 deletions(-) diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt index 2b8ac5ff882a..de498a189646 100644 --- a/Documentation/git-log.txt +++ b/Documentation/git-log.txt @@ -120,45 +120,58 @@ 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 +`--diff-merges=first-parent` is implied. --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|separate|combined|dense-combined):: +--no-diff-merges:: + Specify diff format to be used for merge commits. This has no + effect unless diff output is enabled in the first place (e.g., + with `--patch` option.) ++ +--diff-merges=(off|none)::: +--no-diff-merges::: + (default) Disable output of diffs for merge commits. Useful to + override implied value. ++ +--diff-merges=first-parent::: + This option makes merge commits show the full diff with + respect to the first parent only, exactly like regular + commits. ++ +--diff-merges=separate::: +-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. ++ +--diff-merges=combined::: +-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. ++ +--diff-merges=dense-combined::: +--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. --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 Sun Nov 1 19:33: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: 11872501 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 E9598C388F9 for ; Sun, 1 Nov 2020 19:34:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9F50A208B6 for ; Sun, 1 Nov 2020 19:34:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VF6rft7R" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727373AbgKATee (ORCPT ); Sun, 1 Nov 2020 14:34:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43694 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727347AbgKATe2 (ORCPT ); Sun, 1 Nov 2020 14:34:28 -0500 Received: from mail-lf1-x141.google.com (mail-lf1-x141.google.com [IPv6:2a00:1450:4864:20::141]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5A846C061A48 for ; Sun, 1 Nov 2020 11:34:28 -0800 (PST) Received: by mail-lf1-x141.google.com with SMTP id f9so14663565lfq.2 for ; Sun, 01 Nov 2020 11:34:28 -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=VF6rft7Rqx3d/gW0lclzJnuUtwUl5ezFcyiN5ryVo5vPBt3hvkE4s3ShVUglBnTMcb R4jg0UVGXlW6JT+5mPgVwjWCP6KUHU4vC24aF30pSJYDdUPnVn+j4jxFpcfOAKiaozov 0dWub0eLfiWkYGG9bWWKGzFgBGiNFx5/Qk81bVChllZsyVy/73CIDaMSd9MC3S+NorkE VT/qYKa/Tg4sLkfAuiYEkamrUEgQxVUM14J7ArdjkYBG/XaiKGiEXOa8A28NeDhxPSKV 00+tlOubgBhAvcIl01ylNkdLX+Jzo4KAREb7lXlgowtijf/p6A3R67BFS/cZf5B9vu5O HoEA== 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=IOLxWx/t26vLRT9vuw3Inc94fNTmfMLIlKLcpZhpIzJOVvhgAxbJXAh6YRR5Ci9kvr TSXqjv9OQcU9es0TEqxIUXHb4aoj2fBT1C50gCyMjBzNG71313jLLhMSzRn9E5uPxgER 6zrd959rEJ9DaO/Bsv14nOx3qEAcRnXRo6f+jO/b0HciTuFGJQ+6gngxXhxTySQs1ruB KShxHvhvJHe+dVISv3SCw4VcIYgoGuuMWS8uV+P7Yt4rN1h8iE2miMLJQ5HcouVkBTCR 1PK1cgMVvxuSifAYxCPclDQ8XUdtZ6UPR+hyTNtmb/wQUd4HRueRjp/5yUFWqhQsaAfX QRyA== X-Gm-Message-State: AOAM533EB+oNfaMjFSC5iVlDZ987vO0T/jshOdHxT9MiOl25fbnhNgc9 KrOW77tx0OzRvt9tYRHJqVE= X-Google-Smtp-Source: ABdhPJyW5Qv9WMVMJn0grQK2TfreBaVkUlHD5naV530qzuUcGWZIx6B+qDCXcOA+0z/AnLozjoYfIg== X-Received: by 2002:a19:8988:: with SMTP id l130mr4305882lfd.126.1604259266923; Sun, 01 Nov 2020 11:34:26 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:26 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 25/26] doc/diff-generate-patch: mention new --diff-merges option Date: Sun, 1 Nov 2020 22:33:29 +0300 Message-Id: <20201101193330.24775-26-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-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 Sun Nov 1 19:33: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: 11872503 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.6 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, 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 40F0FC388F9 for ; Sun, 1 Nov 2020 19:34:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0830620B1F for ; Sun, 1 Nov 2020 19:34:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="oayLES9c" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727390AbgKATei (ORCPT ); Sun, 1 Nov 2020 14:34:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43710 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727362AbgKATeb (ORCPT ); Sun, 1 Nov 2020 14:34:31 -0500 Received: from mail-lf1-x144.google.com (mail-lf1-x144.google.com [IPv6:2a00:1450:4864:20::144]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A651C0617A6 for ; Sun, 1 Nov 2020 11:34:29 -0800 (PST) Received: by mail-lf1-x144.google.com with SMTP id a7so14617639lfk.9 for ; Sun, 01 Nov 2020 11:34:29 -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=wH5lezwYC3Zj4pfYQSJSrzR0Zof/a66wlzNTt5jMg30=; b=oayLES9cxh8gwf5iKGMQWbLtI/Fxm8IBdkYSnSD9PD8xxu7XUc3836FYpa0Jy7+S3i kt6Aj2gNqZVKNWaO1N2MnqMGIcAo1jnZpa7SKV4aNL8ut5l4JiDE9H1SELr/DbpvyDGU hwg++miFhS7uJUwcd6cz1IN2Z5f78BQMJlOPfrwVQY717y5KRKSu20NIVVs06/o98p5D 2omBOZOZnVxdZYNE4ZxphBksfgKw9UnbjAd1Udr6BRMsBehnfqLO3R47uu0GAhwmZu2K 7GEiCsPOyeCRpNuJgRMpbgJygyXkWiEbMgbwpVqQk1yQOzI9pEwEmtyj0S50/G6CVyYq ivpw== 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=wH5lezwYC3Zj4pfYQSJSrzR0Zof/a66wlzNTt5jMg30=; b=BHzjA2YHWwpScb7eOELzTkb1JWdwy255sDHiPoP89yqjriVlBeL+gownwRjs/PaQcy fxDemKUNcVAGsiYboUAg7Eu8AthfR7XCaTHMJ0WYNpQGuuRq9UwguuYr30DA/hgTmPvR tLBHh+4BCRasdmoz82GZ5oMyGxn80MID6W4zfg7i+OS3v5vienkHmHXm1Ch04R6yB+uo HwYHtU7O02oo+mEB7cKpkkX4hcsYKWAMQHVJt7+gvl5V3I1m/pdzHxE9mD7MS4G13hXI Bje5RYKmh67CvpsQ2kp6mrtSlA3oLt/+64gl3WCyK83yRjy3T0GzWnFr//vF3zkarycN bA3A== X-Gm-Message-State: AOAM533wxdsx9MwGjtonUX5zvDMsNhOuXqBfBLPj0dxhRecxI9iXAY9h 6zjWZO4jqFYdUcjchwrqQYc= X-Google-Smtp-Source: ABdhPJzOKB9cnFoMtrHp3zEk6KEe+RAwujDNYdh+o1EvMJKsyvR2PkxQTGVAkCLj7MHpY2WVwNu9cQ== X-Received: by 2002:a19:4815:: with SMTP id v21mr4935080lfa.603.1604259267850; Sun, 01 Nov 2020 11:34:27 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id m12sm1766526ljc.88.2020.11.01.11.34.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 01 Nov 2020 11:34:27 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , git@vger.kernel.org, Sergey Organov Subject: [PATCH 26/26] doc/rev-list-options: document --first-parent implies --diff-merges=first-parent Date: Sun, 1 Nov 2020 22:33:30 +0300 Message-Id: <20201101193330.24775-27-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201101193330.24775-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Before introduction of new --diff-merges options, --first-parent implicitly changed the default diff format for merge commits to showing only the diff with respect to the first parent, and there were no way to get such format from "git log" without affecting history traversal logic that --first-parent causes. Now, after introduction of the --diff-merges=first-parent, the --first-parent simply implies the former, and this patch corrects documentation accordingly. Signed-off-by: Sergey Organov --- Documentation/rev-list-options.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt index 002379056a07..ded383e62ae5 100644 --- a/Documentation/rev-list-options.txt +++ b/Documentation/rev-list-options.txt @@ -129,6 +129,9 @@ parents) and `--max-parents=-1` (negative numbers denote no upper limit). adjusting to updated upstream from time to time, and this option allows you to ignore the individual commits brought in to your history by such a merge. +ifdef::git-log[] + Implies `--diff-merges=first-parent`. +endif::git-log[] --not:: Reverses the meaning of the '{caret}' prefix (or lack thereof) From patchwork Mon Dec 21 15:20:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11985047 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 97938C433E6 for ; Mon, 21 Dec 2020 18:01:28 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 60CA022CAF for ; Mon, 21 Dec 2020 18:01:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726019AbgLUSBD (ORCPT ); Mon, 21 Dec 2020 13:01:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48108 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726012AbgLUSBC (ORCPT ); Mon, 21 Dec 2020 13:01:02 -0500 Received: from mail-lf1-x129.google.com (mail-lf1-x129.google.com [IPv6:2a00:1450:4864:20::129]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 34F6AC0613D3 for ; Mon, 21 Dec 2020 10:00:22 -0800 (PST) Received: by mail-lf1-x129.google.com with SMTP id h205so25774440lfd.5 for ; Mon, 21 Dec 2020 10:00:22 -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=o+Hn9/z7jtos5YDGkqDtmMK1/VUsxAr7Rhg4uqj30Sk=; b=aDfPpGfK4TQ15c+8klrxKGpRBF9C6oBD4ngQujQc6nDxYtleQiE9JbLgdLmOvFnPW2 3V5h0ZfBtvuf4rWKw8iNe+PpfmU9p+FHCKZdi6Vbjh7tl2ulI2LA4zjjDWMoC6VM7m9P itTEgYM+vhqqF/QPi/Tm9jZKUzivtamQpyjv/LUxcRnY9o26QY3Z05Ci8vUmIRLd8zoZ O+t7T2T0PyxwBiPOYVkuVVLWAqmkosv9eFLYa9w9Aq6sa1OW/eBOdUnxtQkPrlv4Ie00 WhKdWKpsNwlGgATLDqUAuod2ZgK9wX/Tim5UojkeoeMFPKR0OgL8w79uChQsfMp/uVpd NnsQ== 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=o+Hn9/z7jtos5YDGkqDtmMK1/VUsxAr7Rhg4uqj30Sk=; b=kqx/J/76xkHU4XmQMRkw4DMhsrAWW09Co/AQvyEYbUSXzOuyTniWwltHX0I19eGWER p1cUO1DUlSTAo0UnX4E5rAcqZPv+CFWNFKZ0htwSXyhoyYSnwhXHcDuZrFOh4360Ymtk RDMjiEP95KxAG1m3Oba8HlNy0L1vCNRP3B3XJs15EkFK0Ab86bMuYG3tXEbo982iLPmk WNC77j2JLlJFeOYdtfmW6CnJZBndHG28PFDvdf5D6ENSE1JtqZLZnxtFm4nnwTCaHgbY 4jpuAP0aZVPxClAOcQs6qcYbtUxEU60cAPxZMzxStXP812QzE4YsduxWFaYD6hlMa6Jj 4P8g== X-Gm-Message-State: AOAM533Q3R7ICuu2/MiAsHyNfNdMs9GdKPpeOhNk99OmuP2CrDIKKN95 UACEBNxBK2ZwjzPMcsv0mGTWfyAP97E= X-Google-Smtp-Source: ABdhPJwkFzntEWDCLy/WWmmdvG/Xdujn3i1B2g6oLDAhyj+4Kt1Pk8S4/fotUU3NA/MOeZorSdSXVQ== X-Received: by 2002:a19:3f01:: with SMTP id m1mr6821784lfa.203.1608564069213; Mon, 21 Dec 2020 07:21:09 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id c5sm2220085ljj.67.2020.12.21.07.21.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Dec 2020 07:21:08 -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 32/32] t4013: add tests for --diff-merges=first-parent Date: Mon, 21 Dec 2020 18:20:00 +0300 Message-Id: <20201221152000.13134-33-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 option provides essential new functionality, changing diff output to first parent only, without changing history traversal mode, so it deserves its own test. As we do it, add additional test that --diff-merges=first-parent by itself doesn't imply -p and only outputs diffs for merge commits. Signed-off-by: Sergey Organov --- t/t4013-diff-various.sh | 2 + ...diff.log_--diff-merges=first-parent_master | 56 +++++++ ...f.log_-p_--diff-merges=first-parent_master | 137 ++++++++++++++++++ 3 files changed, 195 insertions(+) create mode 100644 t/t4013/diff.log_--diff-merges=first-parent_master create mode 100644 t/t4013/diff.log_-p_--diff-merges=first-parent_master diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh index 8d8178a8a616..fa82b5a8eed4 100755 --- a/t/t4013-diff-various.sh +++ b/t/t4013-diff-various.sh @@ -327,6 +327,8 @@ log --no-diff-merges -p --first-parent master log --diff-merges=off -p --first-parent master log --first-parent --diff-merges=off -p master log -p --first-parent master +log -p --diff-merges=first-parent master +log --diff-merges=first-parent master log -m -p --first-parent master log -m -p master log --cc -m -p master diff --git a/t/t4013/diff.log_--diff-merges=first-parent_master b/t/t4013/diff.log_--diff-merges=first-parent_master new file mode 100644 index 000000000000..fa63a557dd18 --- /dev/null +++ b/t/t4013/diff.log_--diff-merges=first-parent_master @@ -0,0 +1,56 @@ +$ git log --diff-merges=first-parent master +commit 59d314ad6f356dd08601a4cd5e530381da3e3c64 +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 c7a2ab9e8eac7b117442a607d5a9b3950ae34d5a +Author: A U Thor +Date: Mon Jun 26 00:03:00 2006 +0000 + + Side + +commit 9a6d4949b6b76956d9d5e26f2791ec2ceff5fdc0 +Author: A U Thor +Date: Mon Jun 26 00:02:00 2006 +0000 + + Third + +commit 1bde4ae5f36c8d9abe3a0fce0c6aab3c4a12fe44 +Author: A U Thor +Date: Mon Jun 26 00:01:00 2006 +0000 + + Second + + This is the second commit. + +commit 444ac553ac7612cc88969031b02b3767fb8a353a +Author: A U Thor +Date: Mon Jun 26 00:00:00 2006 +0000 + + Initial +$ diff --git a/t/t4013/diff.log_-p_--diff-merges=first-parent_master b/t/t4013/diff.log_-p_--diff-merges=first-parent_master new file mode 100644 index 000000000000..9538a2751123 --- /dev/null +++ b/t/t4013/diff.log_-p_--diff-merges=first-parent_master @@ -0,0 +1,137 @@ +$ git log -p --diff-merges=first-parent master +commit 59d314ad6f356dd08601a4cd5e530381da3e3c64 +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 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 +$