From patchwork Wed Dec 16 18:48:57 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11978365 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A48FFC0018C for ; Wed, 16 Dec 2020 18:51:07 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6CE882342C for ; Wed, 16 Dec 2020 18:51:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732199AbgLPSvG (ORCPT ); Wed, 16 Dec 2020 13:51:06 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52492 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732193AbgLPSvG (ORCPT ); Wed, 16 Dec 2020 13:51:06 -0500 Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7302C06179C for ; Wed, 16 Dec 2020 10:50:25 -0800 (PST) Received: by mail-lf1-x12b.google.com with SMTP id m12so51018290lfo.7 for ; Wed, 16 Dec 2020 10:50: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=FY7eGwDY58mSyshvP5xYmwpKGCQ8L33LWg6ZcfBc4I4=; b=g93X1sa2qTIBWXLAQHZXAeLjC+FFKLqrVX+LvBZ+9Eo6M3sfBvHMw0Y6Dw+R8pqGVN 8JhzXGuMnGHM6CzHzHkFj9V2uKt/rqrFOJM7dA3QBcjrprR7FsP/f14nZYOJt6qUoPh1 0VzuOpJPJNputmZ9ucRgi49Sg93IFNKDJncicYVAZ/Yhe5Gs9NRRywib6Wo75tbFmvWv 8hSb6ZT44n18q1y9MGdgYQ6xI8eLprfuwrlNMzNK9bQm81p3gOZ+WQaoIkwj0dZ8pPyz o5v+eueKy32ZA8mIeUmSppftdOWLcXk9ZYB+khWBPZ8s/8eeCfykjVQ5gREmdQCfl+JI Hmiw== 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=FY7eGwDY58mSyshvP5xYmwpKGCQ8L33LWg6ZcfBc4I4=; b=d5P0yiMJvMqSY1iuMcOOms5jHoZyC/CnXUFW0vtSmP7KPakC8VpnISq21Cl2KSTaRr 0m78svlivmo4nxq+SSaC8WAH+i9i4dCkQjRRPEBfopn4M4ybWV+GhL2MW7SpssO8tlha vnTFE1ziBfblEAlrAMKgQP3A/nyug9ljIHflrsxY4R8iTR6ZUDVaezjwcmX9xBZdk1O4 AvfAxFUwb6O4LVk266HI65st+ncQrL4Z/X5GFStojFB+wK+CbWopielrVdLuQX/U97zt gQB6vN3v7TrcFi1K4RnFuQ4rUZW/Y/jhzw2PBRmK5+FJep8wCzP1MYiRGDlYbGpDM7Fc 9b9g== X-Gm-Message-State: AOAM532WsLZ36BK6yz3yd5PPCTX8Um+TSvmjG3sm3qwl2R+kHi9fQdGp fXfN0D2vEffC38RgG7vwGeX3t77WHMo= X-Google-Smtp-Source: ABdhPJyWuEdXeRC+P3dt09wqzptY8qLDbvMYq546Ya47sN2UPbaynlnp29gSp/hGmuZ+TQLFUQmzkA== X-Received: by 2002:ac2:548b:: with SMTP id t11mr14267634lfk.181.1608144623338; Wed, 16 Dec 2020 10:50:23 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:22 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 01/33] revision: factor out parsing of diff-merge related options Date: Wed, 16 Dec 2020 21:48:57 +0300 Message-Id: <20201216184929.3924-2-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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..917b14e6ad5b 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 = 1; + const char *optarg; + const char *arg = argv[0]; + + if (!strcmp(arg, "-m")) { + /* + * To "diff-index", "-m" means "match missing", and to the "log" + * family of commands, it means "show full diff for merges". Set + * both fields appropriately. + */ + revs->ignore_merges = 0; + revs->match_missing = 1; + } else if (!strcmp(arg, "-c")) { + revs->diff = 1; + revs->dense_combined_merges = 0; + revs->combine_merges = 1; + } else if (!strcmp(arg, "--cc")) { + revs->diff = 1; + revs->dense_combined_merges = 1; + revs->combine_merges = 1; + } else if (!strcmp(arg, "--no-diff-merges")) { + revs->ignore_merges = 1; + } else if (!strcmp(arg, "--combined-all-paths")) { + revs->diff = 1; + revs->combined_all_paths = 1; + } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { + if (!strcmp(optarg, "off")) { + revs->ignore_merges = 1; + } else { + die(_("unknown value for --diff-merges: %s"), optarg); + } + } else + argcount = 0; + + return argcount; +} + static int handle_revision_opt(struct rev_info *revs, int argc, const char **argv, int *unkc, const char **unkv, const struct setup_revision_opt* opt) @@ -2349,34 +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 Wed Dec 16 18:48:58 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11978367 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 07480C4361B for ; Wed, 16 Dec 2020 18:51:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C56C02342C for ; Wed, 16 Dec 2020 18:51:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732201AbgLPSvI (ORCPT ); Wed, 16 Dec 2020 13:51:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52496 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732193AbgLPSvI (ORCPT ); Wed, 16 Dec 2020 13:51:08 -0500 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 366CAC0617A6 for ; Wed, 16 Dec 2020 10:50:27 -0800 (PST) Received: by mail-lf1-x12c.google.com with SMTP id u18so50979868lfd.9 for ; Wed, 16 Dec 2020 10:50: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=Mntk2P1SMDCo0h3PhXVMco0wgD/MuotZY2jstjIzPvM=; b=rBBkqvaF3DhU9ozOaXuQLxa5dmVrQ7HybPwbf7TRh6zkNewtC1ZtHhsjA39bzGPB38 ainrh2/TMNxiFkW5cwHB++DjPj7Tqlh298tRIty/b3YiEW8MzC8TCIbA+Fy5TzEHR3dA oZj0WkOF8/3Ph5cWNghIMz74kLyMQv53ROINU2EjxiUFZhbw0GDKg5t4H5/LBwLcG8FL oTQ3NHuCP8STtVbjxcvxSBEEYQC+OBRRpFjsEkTP2R4cKmpykVnD4kT+6ej4wK1ThyCh +OR/h0je/7njfafJsfXAPaX+eLqCXa6KYAAui6tClQp5jHjCqltD1WiMkJn0Yt16z5CI BFiA== 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=Mntk2P1SMDCo0h3PhXVMco0wgD/MuotZY2jstjIzPvM=; b=qLsXNFL6AOgYiCDt6RSHDbLqwO8TeCsr00iyEzqBVZKiKd5uyY3jebsTPm2qP08iTH cW+Zfmxrejj4H8cYAvPDxAdbqxrrjMvY4/BFS+iDXQjPy8i87Y4xQPBNpcllW4KOpbm5 PKWbOrh/lgkjJXhVeiC3XIgoFyJSDvFx/1YC5paILmg+Wum7DwsrS0B5GBQE5SDSmv5x sU02Mfa1dx1eBJX85DwUwwStsaBc+5xuaUVMbATZozkqzudX7pnfA41KIpyziopmOW2p jDhvslNGbl0hcjZUAbltILPO59SdV7uvauRA+WEsZiXpUQcNSQ3HnlBIeJrxvfkSZC4Q pf3Q== X-Gm-Message-State: AOAM530pu+GM2rlVuFH0L0Pe/M1q+kjMdpOgAPKHMgj6F1OKHP0rGfsT 0987fT8c6JwBFXqUb/JJId4= X-Google-Smtp-Source: ABdhPJxcdNdYy6OZ1rVQqB2UZK6wOJSyodlr9xUdReXEn75xJ43TRTtVw+deklgIpKn6aXr/svEiGQ== X-Received: by 2002:a19:ca5a:: with SMTP id h26mr10757438lfj.612.1608144624843; Wed, 16 Dec 2020 10:50:24 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:23 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 02/33] revision: factor out setup of diff-merge related settings Date: Wed, 16 Dec 2020 21:48:58 +0300 Message-Id: <20201216184929.3924-3-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 917b14e6ad5b..e4c75d9278c4 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 argcount; } +static void setup_diff_merges_revs(struct rev_info *revs) +{ + if (revs->combine_merges && revs->ignore_merges < 0) + revs->ignore_merges = 0; + if (revs->ignore_merges < 0) + revs->ignore_merges = 1; + if (revs->combined_all_paths && !revs->combine_merges) + die("--combined-all-paths makes no sense without -c or --cc"); +} + static int handle_revision_opt(struct rev_info *revs, int argc, const char **argv, int *unkc, const char **unkv, const struct setup_revision_opt* opt) @@ -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 Wed Dec 16 18:48:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11978371 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D3826C2BBCA for ; Wed, 16 Dec 2020 18:51:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8ACE22342C for ; Wed, 16 Dec 2020 18:51:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732206AbgLPSvL (ORCPT ); Wed, 16 Dec 2020 13:51:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52502 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732202AbgLPSvJ (ORCPT ); Wed, 16 Dec 2020 13:51: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 9249FC0617A7 for ; Wed, 16 Dec 2020 10:50:28 -0800 (PST) Received: by mail-lf1-x135.google.com with SMTP id m12so51018618lfo.7 for ; Wed, 16 Dec 2020 10:50: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=Th2Dq8N66tSTdLaNVRHwhq9rBn4x4y6ED+6W55SSyDM=; b=KIQEBbvcpM7VK+0lS/tkN0YMktOjb/rH5e77higNsuBrgPmPm/M/c1/mbzK5Tj/Wdd EI+rJegrt2UDgftuVCUHn0JrOW2ZL2+aypfLqmXdmNio+1h1vvRlY+P1LHTfbW8BHGDm 1GWxa/0oCzH07ozMOIGBfc5TZfne1T7rxY6mz6Qt121+sI8pgVZAjmtDX7armsRPK9dL zID4sKYseeeEX6mkVRNmTi3yoIzNvUjCg7BmQj9vzaucsRG/T7uu0Q0X35M5y3xNUN3R b8TQm4QBaQt+6DI0Zavc1xHC1JURsOS3kMVThMT4yCXqCftl6NVe6KK+4G1P8Q0zxDMj 1owQ== 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=Th2Dq8N66tSTdLaNVRHwhq9rBn4x4y6ED+6W55SSyDM=; b=jjfnTeo2zqdV2letro1SX1I475hSE0MT414FKJTa9YvommsXoe2MOmeCsN5tM8PJSx BotfigsO4QU1p7fBeK01pIzL2mDCUOxgmxmPBlI0Z13ozGPooPMpiKW2t+p5qk1qrI16 NYPKbi6UIZhROP6YcLxBA9bR7hgHHHaTu+rfBPEE7HbQ8FazZQHZ0rDLffxRnqpfkL7I t0IkiZfuQm+3qvJHf0IjRt3TlgxKAqmm8sjjph7eMo9CVs/DVt8pxyRyDvm5qaaS5miu hGp3BGR5QyFYZNwi9jw3+DvnQSkr6YxAK7iUxfwG/RPLozSKZaV5Uzw4gqrDi+j+uN1g S1Nw== X-Gm-Message-State: AOAM530lI6k+Y2z7PESngI2kDZYldqZCBvwAnJu4JhVM7Fhq1dQkjiUA B8rRXdPWo2Sd2e2IKCDzVmI= X-Google-Smtp-Source: ABdhPJwN2/ljXWj1U8S8cS1rF4r5JsHm6TIl8JjB0v1iUpqMJeUx8pGBJLWjrefIp9Eu3Yc64/t5QA== X-Received: by 2002:a05:651c:1b2:: with SMTP id c18mr15433665ljn.385.1608144626249; Wed, 16 Dec 2020 10:50:26 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:25 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 03/33] revision: factor out initialization of diff-merge related settings Date: Wed, 16 Dec 2020 21:48:59 +0300 Message-Id: <20201216184929.3924-4-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 e4c75d9278c4..da82663c8ce1 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 = 1; const char *optarg; From patchwork Wed Dec 16 18:49: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: 11978369 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3FAD9C4361B for ; Wed, 16 Dec 2020 18:51:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id ECA862342C for ; Wed, 16 Dec 2020 18:51:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732210AbgLPSvL (ORCPT ); Wed, 16 Dec 2020 13:51:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732205AbgLPSvK (ORCPT ); Wed, 16 Dec 2020 13:51:10 -0500 Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D5AECC0617B0 for ; Wed, 16 Dec 2020 10:50:29 -0800 (PST) Received: by mail-lf1-x132.google.com with SMTP id y19so50899705lfa.13 for ; Wed, 16 Dec 2020 10:50: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=nm6/Ih1KABgGx3/Ln7uPqFvEfdXK5Dgba1WeNZ61KqA=; b=JXWj1pfeF6o2AWpjKacvj3GELMZDeHM8BGKkQfkdo1QHjqOFprhdDfZZ52i0pRnJKi a3II4OrlpgdPE103UU+fkuBKSBOLwdax4ohQXM8bFSAbJGa0DuDYLY0yULH51R3TWfUR 2i58HTcH/jwxtkCLM8Z4eNqGzbYpOwzVM8/YvHDmwzwes6aiOekUCHanjfqtI39oIwY7 qv/KFqd93mTELnn9arw1lkKQFgZypmUdFWyV1v+toPrHC1T9kk9Ike0padhG9NDMAeps JdOvcp2IN8QMqLNxz437xQeSxXq4jqJXi1AnRJ0HAoZqelxGJ1WOqOMOcVrU1QEN0p6e b+4g== 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=nm6/Ih1KABgGx3/Ln7uPqFvEfdXK5Dgba1WeNZ61KqA=; b=tSlY5emuT7g76/idGZeIJHH5Mm2mxSuSgGXQ49FDH1ejO6Eo4wIbyJRy6eCtI6LeQ9 nQmMm7XENVGLEaXHNfpe+7iPxC1oJjnsg7LRBybbNDll31Uj45T9tNx1Gioy+JfrvF7S Kx8f+w46z33qITWzV0dENHo3em+yY+LSSDOGPT8E+dhuZafLefe8XC0hACupRU/l7V2i GHxsHCu6orFOXLyROVrlYBVrv0H5r3cjLrwbivUUWLYLjIzyByQaQDMZLIETcJ6iIYWd 5IHMFIxuwuTSFQfiTKdkHTmDj2CXQQP9Zgd1rWk5KgM0CUv32dZqfwFXscur229HVLce /x5g== X-Gm-Message-State: AOAM532/dGpYNBgDEhw0+3oYQe8nIu68CWeR8RT3kyo4ti+lm7ywgL/Z bEli5O46HxJCbDZwPoKXudU= X-Google-Smtp-Source: ABdhPJxXNhsW7CNx0EvydjgvmHYQcuYVinA7pbViEGM/rwi1H1Dw61ZD7B0UCj3vp8yVbgl2dBVS1Q== X-Received: by 2002:a19:3804:: with SMTP id f4mr5120507lfa.163.1608144627479; Wed, 16 Dec 2020 10:50:27 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:26 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 04/33] revision: provide implementation for diff merges tweaks Date: Wed, 16 Dec 2020 21:49:00 +0300 Message-Id: <20201216184929.3924-5-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 da82663c8ce1..7b5b59a3c848 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 Wed Dec 16 18:49:01 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11978419 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49F24C4361B for ; Wed, 16 Dec 2020 18:51:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 120C52342C for ; Wed, 16 Dec 2020 18:51:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731101AbgLPSvp (ORCPT ); Wed, 16 Dec 2020 13:51:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52598 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728177AbgLPSvp (ORCPT ); Wed, 16 Dec 2020 13:51:45 -0500 Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 16760C06138C for ; Wed, 16 Dec 2020 10:50:31 -0800 (PST) Received: by mail-lf1-x134.google.com with SMTP id x20so31448510lfe.12 for ; Wed, 16 Dec 2020 10:50:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JUiOqUyqjaUoBO09wKqBlRfHIkLjuSIe3ERh6Gs/PSc=; b=q5QTIX+/f2LvEwMeLa+L3OffpU9gYU1Wsk57sVQACnaHfQQC84YREzUQpZS0Ik3nhC AVO3V4XjopE2vB8Uk5oYK5KuWVUevbcydaNhLmeJ5y5Tew6OCzVa7+L5sOn4jmXuX+yR QsqQCZiBZJviWeDFmCYsojJRrDFIWrZlN0rzlby7nIgmsVgCMvIUmSa9me97eFXg/AEu Gqdt5erZp2elIVivYB/OG2b9JRvKEiH80Izcr1kYkd9vc+7KBJoo5UN8Eq5qOHUWf19d +RlkaZFXL061JjhCGw8s4tgY3NJpyoWU16KGlvutrbflxsOZy8baYK1aQzQy0FR5Vw8o 7aQA== 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=JUiOqUyqjaUoBO09wKqBlRfHIkLjuSIe3ERh6Gs/PSc=; b=WTQcHu24rC7xBOSJYQs1jUv6cHIjTp7ATBylaGK/CIVedGH907eMivTwOr3GnQmCW1 sRJ+JFE1xcoJJnE5pJ4X1CqdNGdelzJ38h/6ih+/9n6ItusJemcJM7FdfM+7QDus44sH QytqJiXPT3Gl6Epc3jTnyuuHsGaPi8wGbfDSdWsZT0wTtlgaTbCdsjWtWZOwO58aXLl1 mZqmL2M3HC9gFEbhvGzRkgvteazvq8iLr6ZEzyobX0OO7On6UGSm/C2h30sHXOGPnpnE iuj7odIJydnPRau2NdEVT/SgcQTCOC/K1bLZc1jTC82jUjlLcksRTYTlIaqK2U7nz+KS YAfQ== X-Gm-Message-State: AOAM533FsMZQKD/UE2SUd/vhVxQrs1AbrZodPuL87pLJLhjnziCvXGdZ pl2dud0G79Y/YfOPXhtKKeQ= X-Google-Smtp-Source: ABdhPJwuzsPCg3VxT20d9MjolI09S3YBpUlJIctGw3DII+hfGvh3VGUkPdCN/eq6O4mqA3yMEILK4g== X-Received: by 2002:a19:c85:: with SMTP id 127mr12252826lfm.240.1608144628738; Wed, 16 Dec 2020 10:50:28 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:28 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 05/33] revision: move diff merges functions to its own diff-merges.c Date: Wed, 16 Dec 2020 21:49:01 +0300 Message-Id: <20201216184929.3924-6-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 | 18 +++++++++++++ revision.c | 72 +-------------------------------------------------- revision.h | 3 --- 6 files changed, 93 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..eb25bcca2494 --- /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 = 1; + const char *optarg; + const char *arg = argv[0]; + + if (!strcmp(arg, "-m")) { + /* + * To "diff-index", "-m" means "match missing", and to the "log" + * family of commands, it means "show full diff for merges". Set + * both fields appropriately. + */ + revs->ignore_merges = 0; + revs->match_missing = 1; + } else if (!strcmp(arg, "-c")) { + revs->diff = 1; + revs->dense_combined_merges = 0; + revs->combine_merges = 1; + } else if (!strcmp(arg, "--cc")) { + revs->diff = 1; + revs->dense_combined_merges = 1; + revs->combine_merges = 1; + } else if (!strcmp(arg, "--no-diff-merges")) { + revs->ignore_merges = 1; + } else if (!strcmp(arg, "--combined-all-paths")) { + revs->diff = 1; + revs->combined_all_paths = 1; + } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { + if (!strcmp(optarg, "off")) { + revs->ignore_merges = 1; + } else { + die(_("unknown value for --diff-merges: %s"), optarg); + } + } else + argcount = 0; + + return argcount; +} + +void setup_diff_merges_revs(struct rev_info *revs) +{ + if (revs->combine_merges && revs->ignore_merges < 0) + revs->ignore_merges = 0; + if (revs->ignore_merges < 0) + revs->ignore_merges = 1; + if (revs->combined_all_paths && !revs->combine_merges) + die("--combined-all-paths makes no sense without -c or --cc"); +} + +void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs) { + if (revs->first_parent_only && revs->ignore_merges < 0) + revs->ignore_merges = 0; +} + +void rev_diff_merges_default_to_dense_combined(struct rev_info *revs) { + if (revs->ignore_merges < 0) { + /* There was no "-m" variant on the command line */ + revs->ignore_merges = 0; + if (!revs->first_parent_only && !revs->combine_merges) { + /* No "--first-parent", "-c", or "--cc" */ + revs->combine_merges = 1; + revs->dense_combined_merges = 1; + } + } +} diff --git a/diff-merges.h b/diff-merges.h new file mode 100644 index 000000000000..7e970b266cf5 --- /dev/null +++ b/diff-merges.h @@ -0,0 +1,18 @@ +#ifndef DIFF_MERGES_H +#define DIFF_MERGES_H + +/* + * diff-merges - utility module to handle command-line options for + * selection of particular diff format of merge commits + * representation. + */ + +struct rev_info; + +void init_diff_merge_revs(struct rev_info *revs); +int parse_diff_merge_opts(struct rev_info *revs, const char **argv); +void setup_diff_merges_revs(struct rev_info *revs); +void rev_diff_merges_default_to_dense_combined(struct rev_info *revs); +void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs); + +#endif diff --git a/revision.c b/revision.c index 7b5b59a3c848..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 = 1; - const char *optarg; - const char *arg = argv[0]; - - if (!strcmp(arg, "-m")) { - /* - * To "diff-index", "-m" means "match missing", and to the "log" - * family of commands, it means "show full diff for merges". Set - * both fields appropriately. - */ - revs->ignore_merges = 0; - revs->match_missing = 1; - } else if (!strcmp(arg, "-c")) { - revs->diff = 1; - revs->dense_combined_merges = 0; - revs->combine_merges = 1; - } else if (!strcmp(arg, "--cc")) { - revs->diff = 1; - revs->dense_combined_merges = 1; - revs->combine_merges = 1; - } else if (!strcmp(arg, "--no-diff-merges")) { - revs->ignore_merges = 1; - } else if (!strcmp(arg, "--combined-all-paths")) { - revs->diff = 1; - revs->combined_all_paths = 1; - } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { - if (!strcmp(optarg, "off")) { - revs->ignore_merges = 1; - } else { - die(_("unknown value for --diff-merges: %s"), optarg); - } - } else - argcount = 0; - - return argcount; -} - -static void setup_diff_merges_revs(struct rev_info *revs) -{ - if (revs->combine_merges && revs->ignore_merges < 0) - revs->ignore_merges = 0; - if (revs->ignore_merges < 0) - revs->ignore_merges = 1; - if (revs->combined_all_paths && !revs->combine_merges) - die("--combined-all-paths makes no sense without -c or --cc"); -} - -void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs) { - if (revs->first_parent_only && revs->ignore_merges < 0) - revs->ignore_merges = 0; -} - -void rev_diff_merges_default_to_dense_combined(struct rev_info *revs) { - if (revs->ignore_merges < 0) { - /* There was no "-m" variant on the command line */ - revs->ignore_merges = 0; - if (!revs->first_parent_only && !revs->combine_merges) { - /* No "--first-parent", "-c", or "--cc" */ - revs->combine_merges = 1; - revs->dense_combined_merges = 1; - } - } -} - static int handle_revision_opt(struct rev_info *revs, int argc, const char **argv, int *unkc, const char **unkv, const struct setup_revision_opt* opt) diff --git a/revision.h b/revision.h index 3dd0229f4edc..f6bf860d19e5 100644 --- a/revision.h +++ b/revision.h @@ -456,7 +456,4 @@ int rewrite_parents(struct rev_info *revs, */ struct commit_list *get_saved_parents(struct rev_info *revs, const struct commit *commit); -void rev_diff_merges_default_to_dense_combined(struct rev_info *revs); -void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs); - #endif From patchwork Wed Dec 16 18:49:02 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11978421 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BEAECC2BBCA for ; Wed, 16 Dec 2020 18:51:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 950F02342C for ; Wed, 16 Dec 2020 18:51:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731102AbgLPSvp (ORCPT ); Wed, 16 Dec 2020 13:51:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729292AbgLPSvp (ORCPT ); Wed, 16 Dec 2020 13:51:45 -0500 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 59387C061282 for ; Wed, 16 Dec 2020 10:50:32 -0800 (PST) Received: by mail-lf1-x12c.google.com with SMTP id u18so50980481lfd.9 for ; Wed, 16 Dec 2020 10:50:32 -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=Dqq5ziyxOSrHFh9+bhWNiLJTwOSaI7Y3ZHJog5FNCz4=; b=kF+DXAoaACVPYkAFYm+Z02TwTUaQk+UuiCvQaBvW+Jg8t/NkaOjyvSDhgcO0yEz0TR PPe5pNvGPGtqakdrwI1cHBUpQ616ceLbaWaKo24vqmYTAVRQKzR/kCGK4/ImzammMS8V BN5plu9VMJ4T9EU+H2Q7y/C46rArzL/CrEhy6eNKjk9bwDrM92OaQsUBeURFWdkbw2Yo Ws1evB1wsIbgl53OEyDxOZ9YXBA3df4uXLWQD3F4FGibk+Pg3TtjFMcghrL8AkIuDlSb yqyI9CLb9XRYjLDa9LeZ+IDZ9SZ4knO+z5mLu0DHpXMnKIZishTOmqfBXhvyLRe3lniF 8s8w== 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=Dqq5ziyxOSrHFh9+bhWNiLJTwOSaI7Y3ZHJog5FNCz4=; b=k5iZt0VOPJDPCJYfmEkzcJlMbclrJQCFjumtkN3X8uqaWmK11n8k1+kg5WqWLjcL+v zv9a+7XO6Qx6H057IO6LZ3Dqyr0ni34jYLklXzSnTCkxUJiNhZJ9rcH9/DKfMspcfCap Kids0nc2TcHpvKQ3tO35HgKWUv9/eOU95JuF5yuXz/22YAG4XPfiNv+jrzcuBLa0+ZrM Ylq+c2H99a3GOn9/slShw1nTXCczuwYRT9RWibjbfTwzilpYiLCSzaifRmOPtPtxwySw qwY9ZNwpAMUWFRLUKcXwGaArzCPsirAu/jdbjbe1BSIf13dVR2Ptm//VZGVMqdOV+Keq pX4A== X-Gm-Message-State: AOAM533gmHEM2FMwn/EmQ9z0y1q4MNjRLXoETr5Lh657+jw9As5PBO5h j8m47SiySl59Ba9Z+ZjRd2I= X-Google-Smtp-Source: ABdhPJw/bL6+VheeoSaWd/6uGf056MH+4cLZ0g50NcADRFHYh5cjgT1IXq8qBbQP0L8sLZnjdNT9bg== X-Received: by 2002:a19:385e:: with SMTP id d30mr14968093lfj.187.1608144630055; Wed, 16 Dec 2020 10:50:30 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:29 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 06/33] diff-merges: rename all functions to have common prefix Date: Wed, 16 Dec 2020 21:49:02 +0300 Message-Id: <20201216184929.3924-7-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 eb25bcca2494..b647920bdb22 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 = 1; 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 argcount; } -void setup_diff_merges_revs(struct rev_info *revs) +void diff_merges_setup_revs(struct rev_info *revs) { if (revs->combine_merges && revs->ignore_merges < 0) revs->ignore_merges = 0; @@ -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 7e970b266cf5..4ced909b795e 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -9,10 +9,15 @@ struct rev_info; -void init_diff_merge_revs(struct rev_info *revs); -int parse_diff_merge_opts(struct rev_info *revs, const char **argv); -void setup_diff_merges_revs(struct rev_info *revs); -void rev_diff_merges_default_to_dense_combined(struct rev_info *revs); -void rev_diff_merges_first_parent_defaults_to_enable(struct rev_info *revs); +void diff_merges_init_revs(struct rev_info *revs); + +int diff_merges_parse_opts(struct rev_info *revs, const char **argv); + +void diff_merges_setup_revs(struct rev_info *revs); + +void diff_merges_default_to_dense_combined(struct rev_info *revs); + +void diff_merges_first_parent_defaults_to_enable(struct rev_info *revs); + #endif diff --git a/revision.c b/revision.c index 4bc14a08a624..5a0e3d6ad542 100644 --- a/revision.c +++ b/revision.c @@ -1814,7 +1814,7 @@ void repo_init_revisions(struct repository *r, revs->repo = r; revs->abbrev = DEFAULT_ABBREV; - init_diff_merge_revs(revs); + diff_merges_init_revs(revs); revs->simplify_history = 1; revs->pruning.repo = r; revs->pruning.flags.recursive = 1; @@ -2350,7 +2350,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg revs->diff = 1; revs->diffopt.flags.recursive = 1; revs->diffopt.flags.tree_in_recursive = 1; - } else if ((argcount = parse_diff_merge_opts(revs, argv))) { + } else if ((argcount = diff_merges_parse_opts(revs, argv))) { return argcount; } else if (!strcmp(arg, "-v")) { revs->verbose_header = 1; @@ -2849,7 +2849,7 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s &revs->prune_data); } - setup_diff_merges_revs(revs); + diff_merges_setup_revs(revs); revs->diffopt.abbrev = revs->abbrev; From patchwork Wed Dec 16 18:49:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11978425 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2906C4361B for ; Wed, 16 Dec 2020 18:51:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 902032342C for ; Wed, 16 Dec 2020 18:51:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731119AbgLPSvr (ORCPT ); Wed, 16 Dec 2020 13:51:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52606 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729292AbgLPSvq (ORCPT ); Wed, 16 Dec 2020 13:51:46 -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 B186EC061285 for ; Wed, 16 Dec 2020 10:50:33 -0800 (PST) Received: by mail-lf1-x129.google.com with SMTP id a9so50972908lfh.2 for ; Wed, 16 Dec 2020 10:50:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iNW8Ve2ipkb0+6ZllyCODjmDgA5uMCLVcVnyvm7hSZM=; b=psL1jyiSLK/bdgJ4NI7MSzmMLRSXN0BA7WvasScW1GK1rtAmcBLmfacTmU40yBVnZ3 Xsj0aWcqRPCN/GeFbBfL4eiopqF4SpWNwV0WnA6onRbb6iANEMcg68ibQJMp2tsOogwN atr57RHveDPJVd1KRil0G6n2qJ2D2UpBiGj2ntwwM6WpOiJtWFgGxcs0/sjxt88FIQM6 bvgEFdUJNmN4dYUkY8TIkbUXdwNjxE9Jqvknq5fDT9KEVfQWOwAyOtFoVuYFtNtMAPq5 aftHmwJqRg/2aMixN0Q/tLXg6uoLZScqB6kmiKG3sO/np6lyxrlVv6ROZ5ASn0B6dCqO Thmw== 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=iNW8Ve2ipkb0+6ZllyCODjmDgA5uMCLVcVnyvm7hSZM=; b=HUuZ3lUygFu8HhfrXq5JVfAqH18zV7h34zJ+EypBPHrnuawbrD/Y5W/ELdxCdVlE3p b1y/ADAITSHh6tc6Z1HAeLxVXCmUOkyoyDehy/X6BRODZXWE+bq+GFzTWSGU10ovMSx1 OKm8x31lritwVxJu0B+2UrK/+dBO+GkrthX5QOuCQ5POuZaTRFaJTntRCpk/Bph3cyqS +uBfwX2WAiji3XkI0IvvUnIB7HmDg82iC3LdMH3S233igTT7anb0VVwCjacgi+fczyMW 3/hIy7JsCdSoH4ezfXOz33pTbxQWUR1OLp9ygqNqj/2QIyhsJ01kWT9OozJdIFDriSTn STPA== X-Gm-Message-State: AOAM5334xiryUVQDntv2Oj3Vwd2+q8JwF4Rm6VUsBV8Xp05FYhsxx6dL Fpe0NU/5TtalwRx7XG1Ml0k= X-Google-Smtp-Source: ABdhPJy3G/F2k0nvdjlMoTVGkESDil2bqcjn+mM4l4VPOLrrKHZPdbS1FpzQrEuIBF5q4hHkmHxmwg== X-Received: by 2002:a19:c018:: with SMTP id q24mr9135093lff.631.1608144631376; Wed, 16 Dec 2020 10:50:31 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:30 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 07/33] diff-merges: move checks for first_parent_only out of the module Date: Wed, 16 Dec 2020 21:49:03 +0300 Message-Id: <20201216184929.3924-8-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 b647920bdb22..f0d0ae208213 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 4ced909b795e..6937d46219f1 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -17,7 +17,7 @@ void diff_merges_setup_revs(struct rev_info *revs); void diff_merges_default_to_dense_combined(struct rev_info *revs); -void diff_merges_first_parent_defaults_to_enable(struct rev_info *revs); +void diff_merges_default_to_enable(struct rev_info *revs); #endif From patchwork Wed Dec 16 18:49:04 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sergey Organov X-Patchwork-Id: 11978423 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 21CA6C2BBCD for ; Wed, 16 Dec 2020 18:51:48 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EC3D72342C for ; Wed, 16 Dec 2020 18:51:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731106AbgLPSvr (ORCPT ); Wed, 16 Dec 2020 13:51:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731103AbgLPSvq (ORCPT ); Wed, 16 Dec 2020 13:51:46 -0500 Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EA0F4C061248 for ; Wed, 16 Dec 2020 10:50:34 -0800 (PST) Received: by mail-lf1-x132.google.com with SMTP id h205so7472520lfd.5 for ; Wed, 16 Dec 2020 10:50:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=fur7RkFndXBjA/PkzpUSRAEcczQ+IhQLDUUVysKJ1oA=; b=RGHwXQ0IWxCp6HR7I1xaUzsBUpMkA7iw18PZlRPLzhPTn/kLd2ALptCswGJE9M0N34 0/GYfO3hminrg7t5WCVB1zG9lDgAVJI0N6kt8UNHx9aasmd1nYLr9c+OeCAmd6zh86bS rwjgh50WZyz9r+5No62TbbDbsbLsKKFN8KFuOmWZMWDZD9AkfjC/rpYmpqTK/AywcqN1 544uW47+ioxKwyCbhjt8as3/HvyJAo5cGqWJcOXMs1dPKAcUvCm7WO6Ms9kYyD9fcEBl 2/O1c8YlB+RIvzqv7VGHfybjz6Hj9aLYb9WfsX4ILd/dtKHqLnveJ0/l4PgwfzvaxAlM Ty9w== 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=fur7RkFndXBjA/PkzpUSRAEcczQ+IhQLDUUVysKJ1oA=; b=eTcBkdlCY2WjsyZnf1JxrZeWuqcL5oUf+W7muRbzhwQFuXdrN99Uueyjtmi2WMnqyD ZnGHwAa8Z92i0rp/g3YA3HtBBO7p8wD8qbiDNnRM33IM60lzCQWfEybHgSqEgA1p0nmP 3qLvEY/HGL0PqwkY5/wlkKkMi3vHPprF+o6rphYifsBwLnxmKigRvity2VLBYhe7LGcO eyGqOFA57SGu1tydYcN2aZHHUXu1aWojkzItd7DGjS6rWs7C+IFnWWtvmuBVG39c8n4P oWJ8wvZVP/Y4icNUaR2yzgt9sUnY2mq1M/a8kpuVGD6AijAQIcHNUOmywcwzQ+f7Cmpo TFVg== X-Gm-Message-State: AOAM532WzuaIFD3+XpeAcl1eip5vrXX0XLOJmBDaxnqjLwvH01psQ0oY jZ9W37ele7QJ9F7SgqLiGViflRaOImg= X-Google-Smtp-Source: ABdhPJztfdNZUBsAGcgmAORhrxvqiUO0ofkCMosbavf/S6GIkG1GkPItg+A28jAVWqohW006Y9ZHFA== X-Received: by 2002:a05:651c:509:: with SMTP id o9mr14630837ljp.212.1608144632584; Wed, 16 Dec 2020 10:50:32 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:31 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 08/33] diff-merges: rename diff_merges_default_to_enable() to match semantics Date: Wed, 16 Dec 2020 21:49:04 +0300 Message-Id: <20201216184929.3924-9-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 f0d0ae208213..19b85bfdba6f 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 6937d46219f1..18861dc5480e 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -17,7 +17,7 @@ void diff_merges_setup_revs(struct rev_info *revs); void diff_merges_default_to_dense_combined(struct rev_info *revs); -void diff_merges_default_to_enable(struct rev_info *revs); +void diff_merges_default_to_first_parent(struct rev_info *revs); #endif From patchwork Wed Dec 16 18:49: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: 11978429 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BDA67C4361B for ; Wed, 16 Dec 2020 18:51:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8208723433 for ; Wed, 16 Dec 2020 18:51:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731128AbgLPSvt (ORCPT ); Wed, 16 Dec 2020 13:51:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52612 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729292AbgLPSvs (ORCPT ); Wed, 16 Dec 2020 13:51:48 -0500 Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91812C061257 for ; Wed, 16 Dec 2020 10:50:36 -0800 (PST) Received: by mail-lf1-x12e.google.com with SMTP id a9so50973248lfh.2 for ; Wed, 16 Dec 2020 10:50:36 -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=ENbr56fqXEr+thNLGBeJb6mhbVotLLSkZGnz/ah8PXI=; b=cp0dpNQjKZLwRRBIySrrsdDQ/0AYfH+x+25zU5+jHUydOBO8Z8Szaa+/JxkHsRUGD7 kJ/j/PGWu4InQHJ58JDwCYxsIIu0vkKJWOX933D3T+ScIXpyRGp63Qd3Z8H/qT5GHUq9 ZZmUXqbRkWilIQwrDqAIxXhEan4/06O1+0Yr4DAb09sIJ8fromN3WF4l2qnODSsDHQ4s UNVnrtnHx2aEdwuJhQstbaRnia2JOftmm2Zoc33nQolwOj58cs8aX/Vs/sR0twCHaxB2 /lCF3mmwfDxl1x6628Gkl/tAsQqlP3JK9tOvRYT2a+x50bHU3N9ZdIPMLQx1cPuPO1Yr nlYQ== 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=ENbr56fqXEr+thNLGBeJb6mhbVotLLSkZGnz/ah8PXI=; b=CBus9QAmmvo+UrWogxmh5ySOFl/GS+e5QheVJNCyNhSANEJSLQAnJmQ9xEkiKM4tx4 6lGHg910MjLnXYZNawGzCGdDfOCRLsumhELs6SbsLARDQwLmVN6jqd9IuBNqtr8gteoo lPd1jV+JaulS235up+L04c1go8W1OQ3CW3eHdyOBxX+l0P15H7iastsWDD/VZwoCXNSd 8hIN/apfuv3Czosg/+0A9+1DsZIRhmkIzKHHuy8B5Syyyh45EKvhkCSKHZUDTxV4+uxi /Ch2+ZT6nwTvh2rwkUcuLn82MqJCLUaEZmaIFjzfoFIsPtvIWrC2LZAAldX5woLb99Fz nkdg== X-Gm-Message-State: AOAM5329snO0rO4MyvvmR8ZXG/YM/c7X+FAV4K91WMFRK88Xf1DJGeDD vJrXpJeLT2yDSwda4DJX7k0= X-Google-Smtp-Source: ABdhPJxvXI6/8vY9J3aiJCvuq3geitveKPXV8FKW+7V43KLtmlePSa2zYbFoRSz17JOCcjoQ0xcQyg== X-Received: by 2002:a19:797:: with SMTP id 145mr12944731lfh.651.1608144634177; Wed, 16 Dec 2020 10:50:34 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:33 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 09/33] diff-merges: re-arrange functions to match the order they are called in Date: Wed, 16 Dec 2020 21:49:05 +0300 Message-Id: <20201216184929.3924-10-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 19b85bfdba6f..a3b732c34717 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 argcount; } -void diff_merges_setup_revs(struct rev_info *revs) -{ - if (revs->combine_merges && revs->ignore_merges < 0) - revs->ignore_merges = 0; - if (revs->ignore_merges < 0) - revs->ignore_merges = 1; - if (revs->combined_all_paths && !revs->combine_merges) - die("--combined-all-paths makes no sense without -c or --cc"); -} - void diff_merges_default_to_first_parent(struct rev_info *revs) { if (revs->ignore_merges < 0) /* No -m */ 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 18861dc5480e..243ef915c4cd 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -13,11 +13,10 @@ void diff_merges_init_revs(struct rev_info *revs); int diff_merges_parse_opts(struct rev_info *revs, const char **argv); -void diff_merges_setup_revs(struct rev_info *revs); - -void diff_merges_default_to_dense_combined(struct rev_info *revs); - void diff_merges_default_to_first_parent(struct rev_info *revs); +void diff_merges_default_to_dense_combined(struct rev_info *revs); + +void diff_merges_setup_revs(struct rev_info *revs); #endif From patchwork Wed Dec 16 18:49: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: 11978427 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EDC94C0018C for ; Wed, 16 Dec 2020 18:51:49 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id ABFCC23432 for ; Wed, 16 Dec 2020 18:51:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731127AbgLPSvt (ORCPT ); Wed, 16 Dec 2020 13:51:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52614 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731104AbgLPSvs (ORCPT ); Wed, 16 Dec 2020 13:51:48 -0500 Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 15BEBC0611C5 for ; Wed, 16 Dec 2020 10:50:38 -0800 (PST) Received: by mail-lf1-x136.google.com with SMTP id l11so51010017lfg.0 for ; Wed, 16 Dec 2020 10:50:37 -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=k8OTIuDYdPVnBiDWXAbW96V7zFaL6kOclSSRUpMpR8E=; b=c0kiCaUueEGcidGNwc9bSx2QPcs403xUeyBnmnE4B43sxAeVqXs5UoxBp4NdbtKPGQ Z9ktki1EVCaTrfK+VdTVMWlORtOUERTAEFBzYCzXGxZaiSBK6uLKLwkvkyQtypfRDOiB dJwacZrsSvnI5ZWTiVhJPqiAGsERV01JUiQ+5hJ6k2r88O5L00SkwdUAKVAoqGn5i7VP ctkCczRZ0OSqBoA2iEJDbqS/C+RO8wfwNz+tUIu4FPyRy+XoMozVaeGC/N4O7uJn8uZb ls+C/6Q8v31S5CmqPBQ8B3UxgUVCPtlYZrL/lDKZvKMAZggAt3epplV+StZ/4vHa0IjK kDVw== 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=k8OTIuDYdPVnBiDWXAbW96V7zFaL6kOclSSRUpMpR8E=; b=TadprFynvI+VZ8ARRzEyEdXJaS8qAS8OmL+8w2ZRy0q76/G1yuRTbHIvp56yYwBMfP PhM2hm+i+oEt7ho/zbyn2aCOsBdH9Qi8ST/vP8iNrD8tXNXjnsJXpUSISsneffEKzxR9 ssN6s/Jrt/7Fl+poC8Ax8yEGD6DS9gJvXZqVHO3kE/z1hM9HY/sbLydkWH1+9NzD40FL V70QZDvlpF9YZkuTpQuEKSfFmF14hbEFqZwzc30Pz3HB0cd47RNUZqVXcx396SOV3G8e hSLNYvx0KCK89lCM5pJoJKv8hRafmxTctvGQuGXYUh+e3xFx5K3iT6Zf4jOs36UGqJ1d ObnQ== X-Gm-Message-State: AOAM533A/5joo98+Z/8Bq2jKOdCXlOvddSrbIugvWP7Ua7eCbjTY+jqo NAyn5JVMnZSxwHFV66qgjUw= X-Google-Smtp-Source: ABdhPJy+noG81P+1wSMJwRZ5klCsICKzk7FA8OuSlM/iz7ZZNan4fuYvPnSBZ0k+qDovZKhNfghYnA== X-Received: by 2002:a2e:87cb:: with SMTP id v11mr14652439ljj.218.1608144635740; Wed, 16 Dec 2020 10:50:35 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:34 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 10/33] diff-merges: new function diff_merges_suppress() Date: Wed, 16 Dec 2020 21:49:06 +0300 Message-Id: <20201216184929.3924-11-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 | 15 +++++++++++++-- diff-merges.h | 2 ++ fmt-merge-msg.c | 3 ++- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/builtin/merge.c b/builtin/merge.c index 9d5359edc2f7..1f7b69982b40 100644 --- a/builtin/merge.c +++ b/builtin/merge.c @@ -14,6 +14,7 @@ #include "lockfile.h" #include "run-command.h" #include "diff.h" +#include "diff-merges.h" #include "refs.h" #include "refspec.h" #include "commit.h" @@ -400,7 +401,7 @@ static void squash_message(struct commit *commit, struct commit_list *remotehead printf(_("Squash commit -- not updating HEAD\n")); repo_init_revisions(the_repository, &rev, NULL); - rev.ignore_merges = 1; + diff_merges_suppress(&rev); rev.commit_format = CMIT_FMT_MEDIUM; commit->object.flags |= UNINTERESTING; diff --git a/diff-merges.c b/diff-merges.c index a3b732c34717..b150c0490b1d 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. */ @@ -32,13 +39,13 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { revs->dense_combined_merges = 1; revs->combine_merges = 1; } else if (!strcmp(arg, "--no-diff-merges")) { - revs->ignore_merges = 1; + suppress(revs); } else if (!strcmp(arg, "--combined-all-paths")) { revs->diff = 1; revs->combined_all_paths = 1; } else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) { if (!strcmp(optarg, "off")) { - revs->ignore_merges = 1; + suppress(revs); } else { die(_("unknown value for --diff-merges: %s"), optarg); } @@ -48,6 +55,10 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { return argcount; } +void diff_merges_suppress(struct rev_info *revs) { + suppress(revs); +} + void diff_merges_default_to_first_parent(struct rev_info *revs) { if (revs->ignore_merges < 0) /* No -m */ revs->ignore_merges = 0; diff --git a/diff-merges.h b/diff-merges.h index 243ef915c4cd..a031240576f7 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -13,6 +13,8 @@ void diff_merges_init_revs(struct rev_info *revs); int diff_merges_parse_opts(struct rev_info *revs, const char **argv); +void diff_merges_suppress(struct rev_info *revs); + void diff_merges_default_to_first_parent(struct rev_info *revs); void diff_merges_default_to_dense_combined(struct rev_info *revs); diff --git a/fmt-merge-msg.c b/fmt-merge-msg.c index bd22e1ea8865..abc3403fb820 100644 --- a/fmt-merge-msg.c +++ b/fmt-merge-msg.c @@ -2,6 +2,7 @@ #include "refs.h" #include "object-store.h" #include "diff.h" +#include "diff-merges.h" #include "revision.h" #include "tag.h" #include "string-list.h" @@ -668,7 +669,7 @@ int fmt_merge_msg(struct strbuf *in, struct strbuf *out, head = lookup_commit_or_die(&head_oid, "HEAD"); repo_init_revisions(the_repository, &rev, NULL); rev.commit_format = CMIT_FMT_ONELINE; - rev.ignore_merges = 1; + diff_merges_suppress(&rev); rev.limited = 1; strbuf_complete_line(out); From patchwork Wed Dec 16 18:49: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: 11978431 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.9 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNWANTED_LANGUAGE_BODY, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7F257C0018C for ; Wed, 16 Dec 2020 18:51:52 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2F9882342C for ; Wed, 16 Dec 2020 18:51:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731137AbgLPSvv (ORCPT ); Wed, 16 Dec 2020 13:51:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731130AbgLPSvv (ORCPT ); Wed, 16 Dec 2020 13:51:51 -0500 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 80667C0611CA for ; Wed, 16 Dec 2020 10:50:39 -0800 (PST) Received: by mail-lf1-x12c.google.com with SMTP id a12so50989106lfl.6 for ; Wed, 16 Dec 2020 10:50:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=n28UYN9Ovxtsxb+nVL6sKTyfaqRQ+GtHFsIzx0Dkeww=; b=KIBsI8cYlEBtQsmWkc7fZYehFyhANQktp3NeguP68yL6Osl7n9LgeYLnEhhGTBJ/97 W5EbhbPofmvs9DJvbtLNjWjmPmB3j757V+rOgiHY8K6ff5RTcGDYpCSF+meZoa5ouVa4 rGYYgKxmEOtnX1AeDr9MDlGDbNIktsvinCZV4EBHR1dJRAJMlStyE4h2HOuIkrAKv1hH rwHM5yDRVd+NUq1eMQrzhbTTChEczcSjRpPx+vpjh3ivgnFTK4WDxjWcLfyw86n8D04K SDlAeU9BxvR/x9PYWK7YfSBir7e5NWJL0Imq6FzHN3LN7iuygu2i3el8FPH2nqHYu7CS SgyQ== 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=n28UYN9Ovxtsxb+nVL6sKTyfaqRQ+GtHFsIzx0Dkeww=; b=XlXtiIHf5NfSZxPm1/Z3ZeVSkmh+mud+VSGGIsqTl9fsBHMcYZHeKFzehq6klvS1RC 8Iorm++ogfnoEnDrv5eCr1vP5JLJV0IM/71G+wKvh0/Tg5UOWQsxzw+Mgm6SPHNEYW2k k3CSUtDngm3TZy0gGS7rmbBSbOJkBO44d81ID7yEABqt2wnAuqmx1eGYDds+/bRI2lnV 6ymqYmGb9YtWuWmB2uhfQq5CBGc2lNQMWI3dfWWTCDfQsCJhvkYiACw3s1SqhMg/yIqb lPIK0dpZWZVrI4UpVXCUmSqTpfRXYdRTBnEsRWY2a1AkHK/j+71kYEY4FiXfwpmlRWwM Pxug== X-Gm-Message-State: AOAM532YJfGC2BZqinQRmTdSKOetpmYCUi2ewKpskqz7aQ+XL0EwGwpO 7C7w8Gyd0jITOX89LmKvH+Q= X-Google-Smtp-Source: ABdhPJyfYr59l+VNNoYbiMuJchbIWj+8Nyw0hgwnmoHWm9VB4Ee7W1YNaY/O4rm586WNpeS+EWaUNA== X-Received: by 2002:a19:23cf:: with SMTP id j198mr9572570lfj.509.1608144637090; Wed, 16 Dec 2020 10:50:37 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:36 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 11/33] diff-merges: new function diff_merges_set_dense_combined_if_unset() Date: Wed, 16 Dec 2020 21:49:07 +0300 Message-Id: <20201216184929.3924-12-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 | 14 ++++++++++++-- diff-merges.h | 2 ++ 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/builtin/diff-files.c b/builtin/diff-files.c index 1e352dd8f77c..4742a4559b21 100644 --- a/builtin/diff-files.c +++ b/builtin/diff-files.c @@ -7,6 +7,7 @@ #include "cache.h" #include "config.h" #include "diff.h" +#include "diff-merges.h" #include "commit.h" #include "revision.h" #include "builtin.h" @@ -69,9 +70,9 @@ int cmd_diff_files(int argc, const char **argv, const char *prefix) * was not asked to. "diff-files -c -p" should not densify * (the user should ask with "diff-files --cc" explicitly). */ - if (rev.max_count == -1 && !rev.combine_merges && + if (rev.max_count == -1 && (rev.diffopt.output_format & DIFF_FORMAT_PATCH)) - rev.combine_merges = rev.dense_combined_merges = 1; + diff_merges_set_dense_combined_if_unset(&rev); if (read_cache_preload(&rev.diffopt.pathspec) < 0) { perror("read_cache_preload"); diff --git a/builtin/diff.c b/builtin/diff.c index cd4083fed96e..2f570a3131cb 100644 --- a/builtin/diff.c +++ b/builtin/diff.c @@ -13,6 +13,7 @@ #include "blob.h" #include "tag.h" #include "diff.h" +#include "diff-merges.h" #include "diffcore.h" #include "revision.h" #include "log-tree.h" @@ -199,8 +200,8 @@ static int builtin_diff_combined(struct rev_info *revs, if (argc > 1) usage(builtin_diff_usage); - if (!revs->dense_combined_merges && !revs->combine_merges) - revs->dense_combined_merges = revs->combine_merges = 1; + diff_merges_set_dense_combined_if_unset(revs); + for (i = 1; i < ents; i++) oid_array_append(&parents, &ent[i].item->oid); diff_tree_combined(&ent[0].item->oid, &parents, revs); @@ -248,9 +249,9 @@ static int builtin_diff_files(struct rev_info *revs, int argc, const char **argv * dense one, --cc can be explicitly asked for, or just rely * on the default). */ - if (revs->max_count == -1 && !revs->combine_merges && + if (revs->max_count == -1 && (revs->diffopt.output_format & DIFF_FORMAT_PATCH)) - revs->combine_merges = revs->dense_combined_merges = 1; + diff_merges_set_dense_combined_if_unset(revs); setup_work_tree(); if (read_cache_preload(&revs->diffopt.pathspec) < 0) { diff --git a/diff-merges.c b/diff-merges.c index b150c0490b1d..899f9e905d3c 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. */ @@ -36,8 +42,7 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { revs->combine_merges = 1; } else if (!strcmp(arg, "--cc")) { revs->diff = 1; - revs->dense_combined_merges = 1; - revs->combine_merges = 1; + set_dense_combined(revs); } else if (!strcmp(arg, "--no-diff-merges")) { suppress(revs); } else if (!strcmp(arg, "--combined-all-paths")) { @@ -74,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 a031240576f7..f92de137d3a0 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -19,6 +19,8 @@ void diff_merges_default_to_first_parent(struct rev_info *revs); void diff_merges_default_to_dense_combined(struct rev_info *revs); +void diff_merges_set_dense_combined_if_unset(struct rev_info *revs); + void diff_merges_setup_revs(struct rev_info *revs); #endif From patchwork Wed Dec 16 18:49: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: 11978435 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3BA43C2BBCA for ; Wed, 16 Dec 2020 18:51:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E38B62342C for ; Wed, 16 Dec 2020 18:51:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731143AbgLPSvw (ORCPT ); Wed, 16 Dec 2020 13:51:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52626 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731129AbgLPSvv (ORCPT ); Wed, 16 Dec 2020 13:51:51 -0500 Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E79FBC0611CB for ; Wed, 16 Dec 2020 10:50:40 -0800 (PST) Received: by mail-lf1-x133.google.com with SMTP id a12so50989239lfl.6 for ; Wed, 16 Dec 2020 10:50:40 -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=vsnXzJS5eiuSe81pBgFKgcgEe/GVj5jNtbJuSpzYSDk=; b=T3IGEb1u9GzttcZxw0l3zk/PO3NyjNCRWry/V2A1UZqKETEyrDvDQj1QsEACWqGK7/ Y1xrw+rw9ev99aOjuuYWm+4BRoDF1Oqd2BnVRiqYCvAiSNh2+J8oTGY1B7sD/hEji4f3 oLw4bwMhGf0SQ/DX37nMudBXy6HTBKUjnTJ8umCylgMAucnwoj6pdXpd1BYiQ6+kBEPA 5aecxZMvQUgj5ZTbHGFHdTtH6QYREqr4TK+MyvLbztbOLuhgbLXfYjW8I47i/0KAx5rp 8a+SxCRswHYg0fSwK1qZlF/csAtGP+F782SoQmLB47FBws/FcHHGz8+7JxJs4vtZoBD0 kFtQ== 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=vsnXzJS5eiuSe81pBgFKgcgEe/GVj5jNtbJuSpzYSDk=; b=nmO2TNJz8W/BLS/f35ZSppyrLZ+zC08KXYO8inWXFCwcIkqh7AuaLivQfHKDdAJtPX 6wwbwumToLBPAcfeIRFK91DWAMU4AP32OmfXnNADnTw7h8lsnCn5SRrnYnRdgerZedr1 JUHV9LHAQHWM20Nhp26dGE/jqcGnGjBWAv+QuC1r1nlh3dz8WzAb6LSvZZznJcQwfjm/ P1egyQToYe4EkKSDkHGFEAl/kYUvAOY3Ueb01kyWZIq7wv/vHCjGuoT0GM84Vvrf40sZ msS8o4RDU4dXLmqlxoCS3nue8wrvWlt/uOgx6P2cwfR5F16imyil203Lj9nenQ8pIOJY +Efg== X-Gm-Message-State: AOAM532HOP6dmXmtjiMS21KGAD7fPVBwjuq1CUsYNQLqFyZhtNw+xNa3 FR1bAQstlHgjhTh0ysdGxBM= X-Google-Smtp-Source: ABdhPJyC2fij8uKydENF8trEMMQ8bL5/+MQERGvcSfstiXEHM1STXydWwlvC/45XYfx4TCntrWci5g== X-Received: by 2002:a19:be0c:: with SMTP id o12mr13432617lff.479.1608144638473; Wed, 16 Dec 2020 10:50:38 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:37 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 12/33] diff-merges: introduce revs->first_parent_merges flag Date: Wed, 16 Dec 2020 21:49:08 +0300 Message-Id: <20201216184929.3924-13-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 899f9e905d3c..c99d77a318dc 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 Wed Dec 16 18:49: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: 11978433 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CBA43C4361B for ; Wed, 16 Dec 2020 18:51:53 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7C1AF2342C for ; Wed, 16 Dec 2020 18:51:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731140AbgLPSvw (ORCPT ); Wed, 16 Dec 2020 13:51:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52628 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731131AbgLPSvv (ORCPT ); Wed, 16 Dec 2020 13:51:51 -0500 Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 055F2C0611CC for ; Wed, 16 Dec 2020 10:50:42 -0800 (PST) Received: by mail-lf1-x130.google.com with SMTP id s26so16309051lfc.8 for ; Wed, 16 Dec 2020 10:50:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+8K6OnM3xJtODHrcf6a1GfluDn/pXoNN0TPuL/NciX8=; b=GK/2QpVfGwtspNXCubxYlvisTHPYkOVNE1+9cOxruRo3Ha/LBcOHWCkJU3BvnI41gt ZcNN5QuoDYkRRJtoj49F0b7Fgdo5hg6H9jY4mzoaEeVmSBeEIAMhuJH6+iokT/Klb6Qb XFtpxuB3kDn/rOwFG4eqWw5chilZaTKlqqfuGEBW43XR6O7dk17DAxvS94fumwoCqg35 1iThxuhxVYG0Cfp6BpkaIHT9vjDbNw0efTmKpi86T2S1RJlD8tj0+MqJt4FLm7uofPBj ssvfPnJNtK1NehPbzaHEN4IwCWn/3eKyO3bsTjX9gydAexAQpk1iMBylGELCmOHiu3QW mMCQ== 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=+8K6OnM3xJtODHrcf6a1GfluDn/pXoNN0TPuL/NciX8=; b=JaKBrHa3J3Z6KXH4uVLTmFn+5p/juGoztfrrsKFDTG+Dy2X9ps/SFEuynn6WdrVAcg 1mzZ0uitadr/ReO3BjlTWOpaA6I62/wSF7jxBU51fSMnMC4mcJHBeU82E0RH2LJOt4MZ I3HrzDdLfjnRGRjOGPjnpeO44s11sqpkRk3TTuQUQWtxK+qfMCIINlq/MBZnx2AEgKDq ezXIbj2dp7z1XoPJ20YkPBKdBwP42RC7rmvFQWIQHrwH+3zaT7MsR/+0OmK3AYcndxal Qs/Sujh8M6XnYrbhJZfEI1k+jIAMT/C87mAfxnvfLX4oyQX8F3X7KXxJzIoga6jg8xYj oeHg== X-Gm-Message-State: AOAM531+547YfGWt/Zj3+uo4RZp+3fn87igTsig6pW3kc/EucC7hwly3 xgjcwDBhNJe0t9MTF4lZhVc= X-Google-Smtp-Source: ABdhPJymq8FmrI+AtI0GC+R4OBla36KGOm4yIgVqNB0yrWd7ihi9psfTAA4wdhoQ+Kz/pHboCJugew== X-Received: by 2002:a05:6512:21a8:: with SMTP id c8mr14442576lft.139.1608144639631; Wed, 16 Dec 2020 10:50:39 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:38 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 13/33] diff-merges: revise revs->diff flag handling Date: Wed, 16 Dec 2020 21:49:09 +0300 Message-Id: <20201216184929.3924-14-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 c99d77a318dc..76ddbc37bd59 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 Wed Dec 16 18:49: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: 11978437 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 0DCA7C0018C for ; Wed, 16 Dec 2020 18:51:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C38412342C for ; Wed, 16 Dec 2020 18:51:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731139AbgLPSvv (ORCPT ); Wed, 16 Dec 2020 13:51:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52630 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728183AbgLPSvv (ORCPT ); Wed, 16 Dec 2020 13:51:51 -0500 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F2D4DC0611CD for ; Wed, 16 Dec 2020 10:50:42 -0800 (PST) Received: by mail-lf1-x12c.google.com with SMTP id l11so51010555lfg.0 for ; Wed, 16 Dec 2020 10:50:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iPZBgNe/CnnTJLkmODqda//1HtZVycy3DAT/Qha+4cE=; b=pWu9fSQ3XE5lBi9yeoBv7/RaGmxK6Hbsr9ZwSnIbmPBIp248F1jLKtHCqNtlZhvO+h MuDeYpnpO6x7ufrnp+avmJIRxvBzIZgE+KRBIzRD9Pgr3xg1msNIODJZltYf4pdv1WZ3 IuAKeCNU2Bv9cnFAnJbPC3F4hYpTJHX2zMzwu2kVL9o7NfikFC/ECpPpxSlwEyppthtw OjDaAlHY4I4XJXjOWYLuOA1GgvaYK6MPG+62AeA3AYS+bpAclyB1C16/mw0GQGVay8lT ZHkxD2bDmWQ36enru3b/NZ4FqKJxrFw36okugg/TjB1k/zg4WFSFe77636eH5g31RrrV 5xYQ== 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=Dypc/irAWrdPTTQgQ2PkYJtKXIdK4TZInbzMVjMoFyBuChitPLU79NEWirwHbWYw5h EDvghC/rxRfG2da6ydFB7gsWa3pURxnGjTTaiFUeKo+X84JlKbjSn/c4TdCgvnPeaM9+ Tt8KoNTAXxlYpweHCKmfKBWhInf4PmaF79a+CzXGMYj+SRNX4H247U30b/9Q2chdAKvv 1clVCNBYOw3NiC91rhNpgyF4WQeSSrcCxXD+/j5KC4NPaFc9cthM4Irddav0BvHfjzgt ee5glbv31Ftz+SUU0VtqOPNUrWjEi/DvuKDojaEdnI6sSJ9cGrGi1wQ+ELbESt0OOOp8 66mA== X-Gm-Message-State: AOAM531lor44HNvqetjkQGZvb+ZMCZBq7D3VEBom0JyL+hfuNq5kyqm1 VGnuMmLY+icbkZVUamJk+UA= X-Google-Smtp-Source: ABdhPJxIo5VQKY/Gu4SfsJsnNak0US0q1XbIfY8ux5gV8W/RhNVhvTMDtiNlJjw8riucbWxEXAdUEg== X-Received: by 2002:a2e:b1c9:: with SMTP id e9mr15743676lja.283.1608144640581; Wed, 16 Dec 2020 10:50:40 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:40 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 14/33] t4013: support test_expect_failure through ':failure' magic Date: Wed, 16 Dec 2020 21:49:10 +0300 Message-Id: <20201216184929.3924-15-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 Wed Dec 16 18:49: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: 11978439 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 BD42EC4361B for ; Wed, 16 Dec 2020 18:52:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 84B8C2342C for ; Wed, 16 Dec 2020 18:52:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732241AbgLPSwA (ORCPT ); Wed, 16 Dec 2020 13:52:00 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732238AbgLPSwA (ORCPT ); Wed, 16 Dec 2020 13:52:00 -0500 Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 208DCC0611CE for ; Wed, 16 Dec 2020 10:50:44 -0800 (PST) Received: by mail-lf1-x12a.google.com with SMTP id o19so25351069lfo.1 for ; Wed, 16 Dec 2020 10:50:43 -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=C2nC2t5oCclEbHJkqXIjwXaciYn7R9zEevBFukonWmCQgMKjCqNWYgu4eLwW9ThRN5 lZ22WQeE412hHk/VYfFQt9Ty69wAtMS3/d1uOxAzN0boPAMO3HmIvKyED31m9nQtWNAJ suNJrIU6iqmEK2v0gZS5XsqSrRgOmY5k1WpPyBdCChhK9MuYxxAKgsiuJxpRirjydwoG AXeEhQCBIe6qxyeOxUZpXEEQN64BYTIeenVGorHTgiRUGET6gQNvnPtFGxAvp9fihR7z //ERGFWW+xVrESHpcvuUJw0jm1ZZ5lKHsoSmwze3WtQLBw6Y0wgqAm6RyHEf7PD+pTEd o+bA== 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=jfrxKUalaV1pNyjde+5ac3q5R96/l3yU0AJyTLAv7jDCVcVPcW5NUNhelfNxSfALvS dgr3qQJbVt8X4r+u+NGj58DfoLcf1QrKwpQ0x8EAwtw4Pn8lz/YG+vqAkojM/3GUyU64 SW3s2jvih7v5DZFs5SRIZsIz55/tXcjQk3BpjjrthQJa97kPbDnDNeepkVESnCqe+cGG +vm1ByA70U+7tlCID2Xuu4pAG+zgMPPKGoKog9GXnWC8zRhMf0LqLmkjNs3C49CBC5FZ DF7SlzMGMqW9ufe9zlqsatN0krLSLauNzoHV9wQT53iPOwQ/F63dNBWaSh40j5gPXDPi dqeQ== X-Gm-Message-State: AOAM531OYH1WpyrgF358Qzdj2qGt8EM+tHHe0UKyL/qcQ4ixJLWjK1MI r5dabXHxCBPDP/ofMJ1tSuU= X-Google-Smtp-Source: ABdhPJxqVtr+8hYYlgtmDv5MhxS4ODhdZajgZI0J4gG/In/IFDXyU3tILTyJEiw2GZ77VyK2h3NTXw== X-Received: by 2002:a19:4a94:: with SMTP id x142mr14685828lfa.269.1608144641637; Wed, 16 Dec 2020 10:50:41 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:41 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 15/33] t4013: add tests for -m failing to override -c/--cc Date: Wed, 16 Dec 2020 21:49:11 +0300 Message-Id: <20201216184929.3924-16-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 Wed Dec 16 18:49: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: 11978441 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 7376AC0018C for ; Wed, 16 Dec 2020 18:52:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 465AB2342C for ; Wed, 16 Dec 2020 18:52:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728187AbgLPSwB (ORCPT ); Wed, 16 Dec 2020 13:52:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52598 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732237AbgLPSwA (ORCPT ); Wed, 16 Dec 2020 13:52:00 -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 2D408C0611CF for ; Wed, 16 Dec 2020 10:50:45 -0800 (PST) Received: by mail-lf1-x135.google.com with SMTP id s26so16309433lfc.8 for ; Wed, 16 Dec 2020 10:50:45 -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=GP0HxVOUnxJUlHaIw6gjQUPUFR2A5WUAG2gP6dV+ons=; b=L6Oe0bs2Cf+hNyvUYOOFGp7B8I8NNUa6x3djOlLwdeNFt+p5Q0VJzOhMD4HItkWOzt 7UYh+gNhI4su5YwytXAhOZohrJzr8a7ThkuOis+9HtPbvPSR9jwWrewiGXk5Z1Kw275k HP+seK5diJr90LsRKC3XxQtaROWc/SkSmzC7KOf/f+aGImoOg+UMJx8MIpFRU6e+IvBr US0kSMqF5gbQo4DMMwA8lSushCNSXMqb8LG0j3Qv6nyvYgnq9yigrTym33b0RAS8t5z6 zelNpzchmu31CmN/7J3huXFeHuG/ayohNR+q33EZPluSGmoO9GuPfj9dh9adxgZcsyMX P+fw== 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=GP0HxVOUnxJUlHaIw6gjQUPUFR2A5WUAG2gP6dV+ons=; b=pPgLe4e3Nz5FnHuGjKBi/5X87wKRNaERTierJMhzv9ZMqodaTru4ryZ36gn77T8ioT BXEotH2/P6Xt3vh4BAO5XF5ieudgkLbwfWj+ch1CbPeb02JMlmPWSs1EnpYJesbNvSu2 eqSxIWY8qJ3HUIm71WysPgjDIYVJsj38SCJN4eTsa/hy09/JrENqByGi/iMKHunHHAuK tH6muHWbI/VWHNeCAMPHKJcistoBmT0/NLXou4vw+Oa2o1vtExUIHgOiYv1SZJTowvkg rQYkyGTgrpI+dlCPVaz+5Fc8tHAgx+lxDPjXKLxWkCKdaQ5v0SGRRh6OoD1SkS4GQ6Ta 0GTw== X-Gm-Message-State: AOAM533ryGg1d1ecSELethgGTe8FQUrFhaUTRu4QS5/1VtYO/jCa9x/S TraKhJT8THfkL7ZdDO2zke8Z+PqNSYs= X-Google-Smtp-Source: ABdhPJyns7Oxd+duiR4S14tj2bjRRWnN+nQ3jZp2ql+i9fsS2wA+x8DHY8SDuHJVWZZAvKTAV/5l/g== X-Received: by 2002:a05:6512:3054:: with SMTP id b20mr13216569lfb.45.1608144642795; Wed, 16 Dec 2020 10:50:42 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:42 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 16/33] diff-merges: fix -m to properly override -c/--cc Date: Wed, 16 Dec 2020 21:49:12 +0300 Message-Id: <20201216184929.3924-17-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 76ddbc37bd59..5d20e329a661 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 Wed Dec 16 18:49: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: 11978461 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 48E6DC2BBCA for ; Wed, 16 Dec 2020 18:52:27 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 034E62342C for ; Wed, 16 Dec 2020 18:52:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732286AbgLPSw0 (ORCPT ); Wed, 16 Dec 2020 13:52:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52718 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732277AbgLPSwZ (ORCPT ); Wed, 16 Dec 2020 13:52:25 -0500 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4E174C0611D0 for ; Wed, 16 Dec 2020 10:50:46 -0800 (PST) Received: by mail-lf1-x12c.google.com with SMTP id m25so50936155lfc.11 for ; Wed, 16 Dec 2020 10:50:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gnGl71CSNDCprW7cvqUe7rP/g3NSBy0mNnoMBVxrUk4=; b=P1Q14BX5+iJ0pkQ0RO8jI9cGShINppLFKQfnfQKsX5PYXkMEQA/p1VeDQwxJvpKYNp of+uCnedxzcy37p6JeRUov988JwUgriyKWJp31iNRIAzdsZO65XQ52j2h5mFi1y10zYo wH7eFOkYLkwfGko23LjW+KJzQbhNBVTCiuElcAhhJw/XTHBTu+qAA7//xb6XsVosnn8i H2MxeL7+hrNk+rs1CMSIU6tmQHn1RcRDaAMZTnGJ4YAAuQuHbN8Dt7xbrTuwfrkenhdk y8CVmRHfdt9rX/NrG1KHHLw0Co5P42xooG0Ssng0JH1N7RlupGACTMqAgFjXKDKW/pta ca+Q== 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=gnGl71CSNDCprW7cvqUe7rP/g3NSBy0mNnoMBVxrUk4=; b=gIPl5+aq3JktcGe10UJMv4F8vXduWGXJuRMTFtLORdGRKPe7wK5N/rJmYYAJeUKqbr /rHo8qcROQ7WPrDXzgK6KnsmfMmmxX8DifWm/WWeeOKrz2wfhrX62e/pTIUwRtdJVjrZ GIf2+Z2pkQpDpoo4F0iiHWtq/WhectTX7Ctv+jGXt3VZivqRxw7iMi49WK3EWzuLWmt+ evduCRcJqcaNcrKto0hNS4bUR0EnAiS12rIA84KKf0sDJskhZZ9MhsIeJqWBqeuDFLrx OdGMzDiLw8U6Du47nYCFlgiE6WRlzDe742pnY0z9aHOZ4Jgzun0wG4Y5YgMWQwQHRvG9 c0Iw== X-Gm-Message-State: AOAM533MjoL1FzMYh62rruBQJ1gGjaYaeiV4LVzmn/we1RRE0L6pTOLp 30mDlur4T4Af9qCejcPo0aw= X-Google-Smtp-Source: ABdhPJwVjDWw9iP6KdmZtaQyv1nM7jK221X2GsZxCN1pw/UQuLYnznSHxvNhasMqGXB1VG3ZK8t6zA== X-Received: by 2002:a2e:bc05:: with SMTP id b5mr15688009ljf.444.1608144643962; Wed, 16 Dec 2020 10:50:43 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:43 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 17/33] diff-merges: split 'ignore_merges' field Date: Wed, 16 Dec 2020 21:49:13 +0300 Message-Id: <20201216184929.3924-18-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org 'ignore_merges' was 3-way field that served two distinct purposes that we now assign to 2 new independent flags: 'separate_merges', and 'explicit_diff_merges'. 'separate_merges' tells that we need to output diff format containing separate diff for every parent (as opposed to 'combine_merges'). 'explicit_diff_merges' tells that at least one of diff-merges options has been explicitly specified on the command line, so no defaults should apply. Signed-off-by: Sergey Organov --- diff-merges.c | 31 +++++++++++++------------------ log-tree.c | 15 ++++++++------- revision.h | 3 ++- 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 5d20e329a661..711df9975dd5 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; @@ -53,8 +52,9 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { die(_("unknown value for --diff-merges: %s"), optarg); } } else - argcount = 0; + return 0; + revs->explicit_diff_merges = 1; return argcount; } @@ -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 Wed Dec 16 18:49: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: 11978459 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB32BC4361B for ; Wed, 16 Dec 2020 18:52:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 70CFD23407 for ; Wed, 16 Dec 2020 18:52:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732285AbgLPSwZ (ORCPT ); Wed, 16 Dec 2020 13:52:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732283AbgLPSwZ (ORCPT ); Wed, 16 Dec 2020 13:52:25 -0500 Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 42841C0611E4 for ; Wed, 16 Dec 2020 10:50:47 -0800 (PST) Received: by mail-lf1-x12d.google.com with SMTP id l11so51011082lfg.0 for ; Wed, 16 Dec 2020 10:50:47 -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=Ee6eJrvKBZSKrZ++SSd2HUmQCbH6u5CZFRFEG4TPSZ8inuac2as55CPcnidPMp+GUt IytYkvJf7oHi52Z4IsI0knP60TyxAwIzO22CoXigWv+NY22owUDGhGJaBg9aLMmPdPoI 71JmIkDblkghV70gV7N8vORY8rVGSF7lhLPOkwXqVh3IuN0WQgwuQhhXUqfAXGyRqNet 4jP0Veyjt3C141MfXJGqFwyEOubt9YCqF9X+nxiD3TmJVSgGvk/ihkfEKCwO3ZT4AxtU 5c+/Vq3hTuBCzv9JqIck/QcoN3/BfZPh54lVumR5BJH+FBOYCMts443NNZnSQMoKboIb kMgw== 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=i74gjhPMLXT8OR0XHEaEk7qMb24iLxSzq70PHViHIzzuFVGt6IWF8tD2W1ITcvqGNk PXOUFUV/5DDRC9gGRHQXP0x0qgkscfZPiKrM84CxOFYRataO3YKGPDb/wZgDisDv4JyF eJbbdWPdtL5W7DTbhgLxKZKuENa2+pO42dVQpInjkRnrh8NYpmNsPP0rAIJ8pH/aD2/p ihoU8avXd6/uPAju6RhFmd715QYvP4+hcIOlw5gcRJ14LtKi/gecaV8C4PfMeiFNb/6u eRK8fM8h9f3/qco3icK4t5gkbuZOwlzvT5/c7/aZZmODyXkbTCtXRuROY3cW7W46geha tj2A== X-Gm-Message-State: AOAM532Isu0++kbpNO2iad/f1/MGIJ4b2rzqn5c5j/fozBgLE8KoPzaH wYPLGA99io5dFeWhDZ0qr2s= X-Google-Smtp-Source: ABdhPJwkfJaXvjgk4vs8SMJMnV4a07FsEjzekI3gxW/dlThozXAlFcfrKCxuDXVQZugwSS9x6T6/8A== X-Received: by 2002:a2e:9f53:: with SMTP id v19mr14839657ljk.109.1608144644936; Wed, 16 Dec 2020 10:50:44 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:44 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 18/33] diff-merges: group diff-merge flags next to each other inside 'rev_info' Date: Wed, 16 Dec 2020 21:49:14 +0300 Message-Id: <20201216184929.3924-19-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 Wed Dec 16 18:49: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: 11978445 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 75354C4361B for ; Wed, 16 Dec 2020 18:52:04 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 388162342C for ; Wed, 16 Dec 2020 18:52:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732242AbgLPSwD (ORCPT ); Wed, 16 Dec 2020 13:52:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52606 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732237AbgLPSwC (ORCPT ); Wed, 16 Dec 2020 13:52:02 -0500 Received: from mail-lf1-x134.google.com (mail-lf1-x134.google.com [IPv6:2a00:1450:4864:20::134]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B48A3C0611BB for ; Wed, 16 Dec 2020 10:50:48 -0800 (PST) Received: by mail-lf1-x134.google.com with SMTP id o19so25351583lfo.1 for ; Wed, 16 Dec 2020 10:50:48 -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=vquWka1FWhpJRpcBiqZaG2TJQIHaEDYg4BkMYIQn4ts=; b=YkP+G6Iz5G8UO5d/rcocneFx4Q6gXHlu7h/UIRB0OmvIIHAEYYzzvGHlYKEK7qbiAR XOTJtxiFdTg4XVJgSs0b2lQWd601F2oA7lCCxgraifJ9zQYxrrIANwDkD4w0+z+j0T3N QYZent/vovTX1tSaaQTOz+EYKkALNfTR/wP8DAdKAKjflmVoh2twgtO6BM+2lkG7JWAa o614pzSepwOfuc01S1aB+0OB/6QlFabhEwS9nE6LyuCCJLGyNEj9ZYhXAj2PiK2WiAmC LFxxRKfUCcbhwlqSOYIYzQVRjBjou2RTmlvQosZSyjT1lj3hubHrAkDagthUDequSjQZ YhRA== 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=vquWka1FWhpJRpcBiqZaG2TJQIHaEDYg4BkMYIQn4ts=; b=cYOBUWPNug7yNGNS1KpFeKtxxINodSTvknGbwtsCCKiCtd6+7/r9pHWId6X2r/Y1Ln vMYbSaJkbgay4KH2TrM9WoHL9sR6c+V28x2vpg0zQOIATlh3iDhNDa1+zFuetCMA6Ahl B3R85zKDXuFPkzZ3z9UpS6DksewrzdY+YAg7YBz3LIcL9tFy2sVdEamY2ppqUj22eR4x bj/3Ylq+UByjbuW6fGp0bFxmtooqt3YACz2h+7rhT3HCkA6TfnOs+OjXFG1g3gXCSa6l wew2D/imz2wX3K5nKdmPZcFh/fNh7G7OI3n7p9hnT20TPsWyRN59cyeD0t+/xYDCZ3Xp h5QA== X-Gm-Message-State: AOAM531l/j46SfsdaRcpe2fmWMtpqtUJKa9HMcqp7MAyiZOIBNvSeXj1 M9pdq7Ws6Pz4TYmAgaY1RnI= X-Google-Smtp-Source: ABdhPJwcpTHzMzdCVEt2u9eAy1i1oLlfbo2ypSHBpb3qtG130NTYgYIpWqVAWf/a8h7jagGORU9vbQ== X-Received: by 2002:a2e:8297:: with SMTP id y23mr14240223ljg.177.1608144646326; Wed, 16 Dec 2020 10:50:46 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:45 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 19/33] diff-merges: get rid of now empty diff_merges_init_revs() Date: Wed, 16 Dec 2020 21:49:15 +0300 Message-Id: <20201216184929.3924-20-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org After getting rid of 'ignore_merges' field, the diff_merges_init_revs() function became empty. Get rid of it. Signed-off-by: Sergey Organov --- diff-merges.c | 3 --- diff-merges.h | 2 -- revision.c | 1 - 3 files changed, 6 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 711df9975dd5..9ff6ea02edb8 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 = 1; const char *optarg; diff --git a/diff-merges.h b/diff-merges.h index f92de137d3a0..659467c99a4f 100644 --- a/diff-merges.h +++ b/diff-merges.h @@ -9,8 +9,6 @@ struct rev_info; -void diff_merges_init_revs(struct rev_info *revs); - int diff_merges_parse_opts(struct rev_info *revs, const char **argv); void diff_merges_suppress(struct rev_info *revs); diff --git a/revision.c b/revision.c index 5a0e3d6ad542..46645ca0b6df 100644 --- a/revision.c +++ b/revision.c @@ -1814,7 +1814,6 @@ void repo_init_revisions(struct repository *r, revs->repo = r; revs->abbrev = DEFAULT_ABBREV; - diff_merges_init_revs(revs); revs->simplify_history = 1; revs->pruning.repo = r; revs->pruning.flags.recursive = 1; From patchwork Wed Dec 16 18:49: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: 11978443 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A3D93C2BBCA for ; Wed, 16 Dec 2020 18:52:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 634B82342C for ; Wed, 16 Dec 2020 18:52:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732246AbgLPSwC (ORCPT ); Wed, 16 Dec 2020 13:52:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732242AbgLPSwC (ORCPT ); Wed, 16 Dec 2020 13:52:02 -0500 Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D54A5C0619D2 for ; Wed, 16 Dec 2020 10:50:49 -0800 (PST) Received: by mail-lf1-x130.google.com with SMTP id o13so27798432lfr.3 for ; Wed, 16 Dec 2020 10:50:49 -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=nx0nrlAZcbTTgDQsVD7PY+kREjdUbQ0Un3LK+en8vyQ=; b=pyyhqe8zWpgfdA6MRkOuHS7dyk0xnFjLbudyyI1qxyEkZJwAMFRBD4x5AxuCanj/i/ cVa6y65HCH7wa5Is0QRz1/KTD448IoJApfVHyk5mTisHCPefq89EA07dSXb3UwykO/pr CMhjrWRnT7g9NhnpxRxkJ7XbZHZ/SGS272dZjAG71UlDMHh6zqqINg+W+OkqXD7rjse6 43qwVXbV08dOc8pqnGojoA8C4S70F66dAn8TZHJUMjf3YfvX9Q7Xab1ngfjrXhdAHEO7 l50Jgwqrer5WbPjc7ftFPrjgxEWoz/T/0+o+L/MZENOUilWMd1fh992PAngQJNlqXKfZ tSkQ== 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=nx0nrlAZcbTTgDQsVD7PY+kREjdUbQ0Un3LK+en8vyQ=; b=Rrp12hZXI4lIZfnFR+3eG7NEKbLpCrtbbLIWHR6KtFY98SSBXiui6HgJIfx86/OyYy 9ShMIL4mG9kVBcqsN9cEP60nPaiS8KlbAZW+bH+fmQZTVrFR4NUnd0klTm0qtvKi2CBb BemJOsKI1x2pG4lfwAJHdI3ZuNX2IwQHewp1xYcu3yL7nBtA+V2naIQuXBuPBOS9h6fC cJGdEWvmY6LAPYGx/Fe+NbzG/uY8+G4AHb0AzNAHGBPyghbng4u3mwZQGsp+XPRgcsXH R6JT4INIfQ1MsOUQ32wGv++/CGCumcT1Fq9s3Qh+Y6+kmvX7wy7Tgkpff5hPjB4he04e 18/A== X-Gm-Message-State: AOAM532M+FSble9Oxmm78FW01qe7DmCvi2Cp1BPIWyCUJWYPUh3JQyqo SJheDB2g/gnhQ7O5MUnenjg= X-Google-Smtp-Source: ABdhPJyfwrfWCf52l1hpDw6OlWpqpzt98gHRWJNEDt4q8ajf+xgiG27S301ulo0bmS5MLTPxz+wN+w== X-Received: by 2002:a05:651c:301:: with SMTP id a1mr14493473ljp.275.1608144647552; Wed, 16 Dec 2020 10:50:47 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:46 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 20/33] diff-merges: refactor opt settings into separate functions Date: Wed, 16 Dec 2020 21:49:16 +0300 Message-Id: <20201216184929.3924-21-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 9ff6ea02edb8..4c434e914c8d 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 Wed Dec 16 18:49: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: 11978463 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 30890C4361B for ; Wed, 16 Dec 2020 18:52:31 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0161F23407 for ; Wed, 16 Dec 2020 18:52:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732294AbgLPSwa (ORCPT ); Wed, 16 Dec 2020 13:52:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52726 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732277AbgLPSw1 (ORCPT ); Wed, 16 Dec 2020 13:52:27 -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 02AF1C0619D4 for ; Wed, 16 Dec 2020 10:50:50 -0800 (PST) Received: by mail-lf1-x129.google.com with SMTP id o17so48050992lfg.4 for ; Wed, 16 Dec 2020 10:50:50 -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=e1STZ6GfLQdbzzy90sWhf3PHBLo7dYtqQTM6XfIkRkU=; b=o0wSW612t2uXBxCUKFn4hPjKD8yaWENhez/At3+eNutr0G9GL+ZYKG7ynpVhdtGN1g 8GSK+7bd++0IHRWZ4MZ1JA3XI0uL/hzMaw1hiH3x2PujEo7ecIrQagbkNs7XhFxbVNOc zW4r+yTwZDCx3Thu4MMwnxRJluW/WDmqUPEHfSq2JMzuxneDRAz1ByrN2AOQC38vRYCk 2KWzCIDX7tsGRr6YeuHPuZhWkbIKfmGnaWUmxS5O9xBA/LWAeqIkaDb4PVwYd9Q5a3sG EFzjOgYuk0HWZoBV4QZaIP0+3b1rXKjXDUEFsWlDbXDXk9/UvG0gaBgdh7jAsY5SC64o LU3w== 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=e1STZ6GfLQdbzzy90sWhf3PHBLo7dYtqQTM6XfIkRkU=; b=ruJbE0LpwdmJsM0PT1e2Dx5+UDKhQ4Qggl8y3GbNU0s9AaNW/snS11Vmxa8gzIXDSa zyN3VFLWidFqnEhHoZuVc1cQEzJaVuaLpNQZtdwabUqZvDPam8IyGcUIWz98yL7n9HxS yKmnVkkazkgs+yFyX41LlIVRmBWkbsZY3l2Y+10qnwfJpOpxGrPVkgmDjCQRjNDyN7L5 U+0ZjOXaG8UPtdRWBbfIgv5OaYxViZvcAiLxzzLkQ7rVZHPKPTbd5adLqwGXbSHT584D 1a3UFJLJ53Gbk7rTU3Rkwp6OonasnuN7tOq4428Sm/kz2V/hLvkFC+8T6tL3DjirYgsW HRzA== X-Gm-Message-State: AOAM530wneIaFOCcCX12JCrh2tRZoqkd9Mx2Nz2RbrVu4RtGyuZfNU9Q Fjr/J+kU2ESkqoD7MIv+2YxxxYeb7hY= X-Google-Smtp-Source: ABdhPJxiCTKiwIktEfaFAX64Be6AYDrkoQHOTCJS3y3HtZaFLIzVXpJSnueAIuL0XGeBalDQjf5dXQ== X-Received: by 2002:a2e:8106:: with SMTP id d6mr15126797ljg.217.1608144648687; Wed, 16 Dec 2020 10:50:48 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:48 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 21/33] diff-merges: make -m/-c/--cc explicitly mutually exclusive Date: Wed, 16 Dec 2020 21:49:17 +0300 Message-Id: <20201216184929.3924-22-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 4c434e914c8d..6446e2093661 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 Wed Dec 16 18:49: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: 11978475 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D4A51C2BBCA for ; Wed, 16 Dec 2020 18:53:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 8A70B2342C for ; Wed, 16 Dec 2020 18:53:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732310AbgLPSwh (ORCPT ); Wed, 16 Dec 2020 13:52:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52728 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732287AbgLPSw1 (ORCPT ); Wed, 16 Dec 2020 13:52:27 -0500 Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED755C0619D5 for ; Wed, 16 Dec 2020 10:50:51 -0800 (PST) Received: by mail-lf1-x136.google.com with SMTP id x20so31451011lfe.12 for ; Wed, 16 Dec 2020 10:50:51 -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=XNZYNV+1JUMPyUPIvJoRxGWB0n+bQOA318/2sPShQWk=; b=qeDdJCYTqbfUMq/JLUH2lb3l2KzRA6ZYKvnItmBHF86mWR2yOTL2JxJDcQ8GiDP+z6 mPGkOL0TuUUoDHUjzq8j32v30IfHm7i7Gk97SBN9iVTgN0cA44h/Sr62t1Y6HNGPV3A/ 5HdZkcmZlYElDg2rnGOWyrTfYrzc95nf6dFC7U7HxjXUHRQRCPYOswEOPM7t/8Wt0hGS M45pE10beZ0wguouIKkvfxWw3JoAsKyEkdhzQB+TGxCBW40RC3N1scOEsnNkSC+T039R DF9iB0C+0IJH+MLuRVKX0rnlcoptArnUtHyBfvFmiJ7buuKJFcbhHtkHcGC7kQsicJm0 C0Mg== 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=XNZYNV+1JUMPyUPIvJoRxGWB0n+bQOA318/2sPShQWk=; b=ddQd70aZyjsKDP5rOZCdehcyh6ZSc+ndJIz9+f4sSsPdx8LrqpgKU0eZ4IcG9MalZL u/VEKjP8lB4gCI86krV8PBHT0SCPaTo/NzZR5ceHZfAyn6JFdHFU+hivyWeea9iF7qop WZiVCEnZRO4FHMP6qWcyrln5Csm5GgyNhLH6Mp428VGJxgyz6pxFc3jvr/38D0eL2c0G 181KZGLVrDik/vSTnR3YL/1JEBop3V/X0n7aou3C3L4/OH1gdmJJHHSK9jUGDA4wVisk qHIIYeFSXxpYfI0cB5mZm47LuSeoh5g4+cbTA9IabBhoXG9pc1lnGUNacLEQyhrC/XzX 3ksA== X-Gm-Message-State: AOAM532tYn5YD1OG2F1fK2lCCDSOv46N1fhqkPFF7gFYsWxHqZa17qL4 ngGiHMMlf/52NEUOUCqiY3o= X-Google-Smtp-Source: ABdhPJyfaL3KrnPjMClsTJh7gID/HqHk/Yl7quzN/0ICLl7kJ3AYIxzdPl2J9k0Vnz6Oh6VuCTMSpA== X-Received: by 2002:a2e:a58e:: with SMTP id m14mr15616153ljp.1.1608144649700; Wed, 16 Dec 2020 10:50:49 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:49 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 22/33] diff-merges: implement new values for --diff-merges Date: Wed, 16 Dec 2020 21:49:18 +0300 Message-Id: <20201216184929.3924-23-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org We first implement new options as exact synonyms for their original counterparts, to get all the infrastructure right, and keep functional improvements for later commits. The following values are implemented: --diff-merges= old equivalent first|first-parent = --first-parent (only format implications) sep|separate = -m comb|combined = -c dense| dense-combined = --cc Signed-off-by: Sergey Organov --- diff-merges.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 6446e2093661..cba391604ac7 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 Wed Dec 16 18:49: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: 11978447 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2E88C0018C for ; Wed, 16 Dec 2020 18:52:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 872002342C for ; Wed, 16 Dec 2020 18:52:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732253AbgLPSwE (ORCPT ); Wed, 16 Dec 2020 13:52:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52612 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732237AbgLPSwD (ORCPT ); Wed, 16 Dec 2020 13:52:03 -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 21B33C0619D6 for ; Wed, 16 Dec 2020 10:50:53 -0800 (PST) Received: by mail-lf1-x135.google.com with SMTP id h205so7474740lfd.5 for ; Wed, 16 Dec 2020 10:50:52 -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=X7vewzoKngdPqq0mSlLm8ilg2Zb81AKNjUERNEbmY98=; b=iCstS8nxMsIdREiFpsnfDI4f9lAjMMIpjua5ii5VKc1Vn3MZOBdzWRoYXKlV+3jRk1 HvV0P/yMqofQMNxdKMTRLPiQBrQWKwpCbHWIcJOOCcqFFLNQRvl7SMqnPCPIXKJl2gTy 7hmdjHwGA3ZnJcVZu18PLzg3lug6kxEcujma0o+96TGt3hWfXMzXZsYs3OAtyorvUUqD kilM7p9wCITG1UNXczjcZ3OGqvgqJnsFiJXA7ldr/Z05HV4whFYolEzRiM8sXAcFwp5w r4GnrF8fnJhC2UCnENYu3iNx9CtnhRxuZ4m1JQZ7El9Wlc2l5S6nHEQf3vX9c7W7gnx8 qYTg== 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=X7vewzoKngdPqq0mSlLm8ilg2Zb81AKNjUERNEbmY98=; b=b1d2wXxtn+5XrOfXTTqj+4sDhcvJac0BqeQ8Oeci6jxjnY7MDUcnczInw6UCIDFVwH GiivW5FFfjZPnUUA0bWIaIiWfhGZLOs2OgB30xQpx+mt2SVYGTPCL8232BJEgDte+uA6 eTV3ZSFdw6lzpoyNLJG76Uopc705NmRDMJr0iQX6LrJzvLlBBHVuZLwapLO4CjUWaVhx H5NJqKbO6Dgxs2M6eAq3qvEBcvxHXpGwu921XYPIy6gJo/zqw30+PVwgCjey6jMyYuuN P2PPm8L9LhTLI69DMMSO3G9SSTrkBUlD2t19Hwn6bpjIdpRur4pDwzE11CEXG5s9jpnX mXbw== X-Gm-Message-State: AOAM531XmjFX9gE2keJNtI2eAJlw6oTAuVNekP0CwP9WNdNN6K7OjRjs tHNoWCETGipn5Z/8GE2d8dk= X-Google-Smtp-Source: ABdhPJxUhFkzJKfDzi0PKTX2Ze2OSLcXzJ/wKoxl5nDOzHK1urIj1X0CrRrKFBMud9QjdhZI3O4/qA== X-Received: by 2002:a2e:9605:: with SMTP id v5mr9502703ljh.81.1608144650803; Wed, 16 Dec 2020 10:50:50 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:50 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 23/33] diff-merges: fix style of functions definitions Date: Wed, 16 Dec 2020 21:49:19 +0300 Message-Id: <20201216184929.3924-24-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Put open curly brace on its own line Signed-off-by: Sergey Organov --- diff-merges.c | 36 ++++++++++++++++++++++++------------ 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index cba391604ac7..0165fa22fcd1 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -2,7 +2,8 @@ #include "revision.h" -static void suppress(struct rev_info *revs) { +static void suppress(struct rev_info *revs) +{ revs->separate_merges = 0; revs->first_parent_merges = 0; revs->combine_merges = 0; @@ -10,17 +11,20 @@ static void suppress(struct rev_info *revs) { revs->combined_all_paths = 0; } -static void set_separate(struct rev_info *revs) { +static void set_separate(struct rev_info *revs) +{ suppress(revs); revs->separate_merges = 1; } -static void set_first_parent(struct rev_info *revs) { +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) { +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 @@ -30,19 +34,22 @@ static void set_m(struct rev_info *revs) { revs->match_missing = 1; } -static void set_combined(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) { +static void set_dense_combined(struct rev_info *revs) +{ suppress(revs); revs->combine_merges = 1; revs->dense_combined_merges = 1; } -static void set_diff_merges(struct rev_info *revs, const char *optarg) { +static void set_diff_merges(struct rev_info *revs, const char *optarg) +{ if (0) ; else if (!strcmp(optarg, "off") || !strcmp(optarg, "none")) suppress(revs); @@ -62,7 +69,8 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg) { * Public functions. They are in the order they are called. */ -int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { +int diff_merges_parse_opts(struct rev_info *revs, const char **argv) +{ int argcount = 1; const char *optarg; const char *arg = argv[0]; @@ -86,23 +94,27 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) { return argcount; } -void diff_merges_suppress(struct rev_info *revs) { +void diff_merges_suppress(struct rev_info *revs) +{ suppress(revs); } -void diff_merges_default_to_first_parent(struct rev_info *revs) { +void diff_merges_default_to_first_parent(struct rev_info *revs) +{ 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) { +void diff_merges_default_to_dense_combined(struct rev_info *revs) +{ if (!revs->explicit_diff_merges) set_dense_combined(revs); } -void diff_merges_set_dense_combined_if_unset(struct rev_info *revs) { +void diff_merges_set_dense_combined_if_unset(struct rev_info *revs) +{ if (!revs->combine_merges) set_dense_combined(revs); } From patchwork Wed Dec 16 18:49: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: 11978449 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 53DF2C4361B for ; Wed, 16 Dec 2020 18:52:06 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1175F2342C for ; Wed, 16 Dec 2020 18:52:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732249AbgLPSwF (ORCPT ); Wed, 16 Dec 2020 13:52:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52614 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732248AbgLPSwD (ORCPT ); Wed, 16 Dec 2020 13:52:03 -0500 Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A6F1C0619D7 for ; Wed, 16 Dec 2020 10:50:54 -0800 (PST) Received: by mail-lf1-x12a.google.com with SMTP id o17so48051383lfg.4 for ; Wed, 16 Dec 2020 10:50:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=OeyXcDlj//79BfoPP0BqwvCMF5eH4ec16q5FSajBpOk=; b=rizME4yZ7Qu4OQOBUv+tjlGMaL0RbLgBNXnioj0kZupao6oau2HBCCueGHMZ7IS9Ab JYz3B3KiWxKg1zU9YzgJ6fvsYs2kzjQAbdRWvpk3wYE4nb4fq3GbrVOBGAW+T14KTJuW 4azDSYGe2ZMklaz35o/iRXGhSA3qVl5swSev/eHToqJExQaX3ah55ja3PbIN6Babz9lX q8bKivZRU2sT7gaha8IRFnMDTjpNbkbsQuPn9j2t6TuRYfRaHbuDB/mZ9VblIUsNnXCQ I8hsxJgD27etLknJUmApU4oXujiDmU58roQkboLqQFQo2npaTnoUbhfL4eQ6ui5nTRrz Bj6Q== 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=OeyXcDlj//79BfoPP0BqwvCMF5eH4ec16q5FSajBpOk=; b=FSj24LVjB0OXzi9A97eZcNDQSwZrfdV8TmyIO9wWyiiQAen3OPdFeHWEtYVH/FTBR1 gBPoafbqZgxi1IAdQC9Ef/UAU7kx1fDDG1Kga8eckePP2pRnJ9MBvvqlNvZU/loWmGNE VfBETZ93vBsVJfa+cNGYsQ1q+sCspPL+TSk+R4j3RdkZ2azQnPjR8OsW6/dUkFIJuLFR 8d8z22FK2aDX8hgm2Q1TW7H31wYqx49bgfKp0mKHpimRrBUB7DjDqDg5tPGWQa6v54XW pXNuMXZNfZ3zEvBeO0nEoY/QRid4vqg5fFepea0WDUIhBjTwDLY6vvnYHPnI47+FZX3K 2JJw== X-Gm-Message-State: AOAM533nKIdU+6UJYplmSouMCh3h4FK8ePgEeqzByV7bhbOdjoUZZKQB dFUhLpL2nZ8hoQFyYlJ7kII= X-Google-Smtp-Source: ABdhPJwON4IfXkHBBM3RSz6ueFzJ2bD4gKUQvi83EMpl43ORjrvOJRWYJBcR/tV72NzCi2QV09G6nA== X-Received: by 2002:a2e:2a46:: with SMTP id q67mr14354717ljq.331.1608144652091; Wed, 16 Dec 2020 10:50:52 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:51 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 24/33] diff-merges: handle imply -p on -c/--cc logic for log.c Date: Wed, 16 Dec 2020 21:49:20 +0300 Message-Id: <20201216184929.3924-25-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Move logic that handles implying -p on -c/--cc from log_setup_revisions_tweak() to diff_merges_setup_revs(), where it belongs. Signed-off-by: Sergey Organov --- builtin/log.c | 4 ---- diff-merges.c | 7 ++++++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/builtin/log.c b/builtin/log.c index 63875c3aeec9..c3caf0955b2b 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -723,10 +723,6 @@ static void log_setup_revisions_tweak(struct rev_info *rev, rev->prune_data.nr == 1) rev->diffopt.flags.follow_renames = 1; - /* Turn --cc/-c into -p --cc/-c when -p was not given */ - if (!rev->diffopt.output_format && rev->combine_merges) - rev->diffopt.output_format = DIFF_FORMAT_PATCH; - if (rev->first_parent_only) diff_merges_default_to_first_parent(rev); } diff --git a/diff-merges.c b/diff-merges.c index 0165fa22fcd1..2ac25488d53e 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -127,6 +127,11 @@ void diff_merges_setup_revs(struct rev_info *revs) revs->first_parent_merges = 0; if (revs->combined_all_paths && !revs->combine_merges) die("--combined-all-paths makes no sense without -c or --cc"); - if (revs->combine_merges) + if (revs->combine_merges) { revs->diff = 1; + /* Turn --cc/-c into -p --cc/-c when -p was not given */ + if (!revs->diffopt.output_format) + revs->diffopt.output_format = DIFF_FORMAT_PATCH; + } + } From patchwork Wed Dec 16 18:49: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: 11978467 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 38395C4361B for ; Wed, 16 Dec 2020 18:52:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id EF75023407 for ; Wed, 16 Dec 2020 18:52:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732289AbgLPSwa (ORCPT ); Wed, 16 Dec 2020 13:52:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52736 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728190AbgLPSw2 (ORCPT ); Wed, 16 Dec 2020 13:52:28 -0500 Received: from mail-lf1-x136.google.com (mail-lf1-x136.google.com [IPv6:2a00:1450:4864:20::136]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6E87BC0619D8 for ; Wed, 16 Dec 2020 10:50:55 -0800 (PST) Received: by mail-lf1-x136.google.com with SMTP id o19so25352438lfo.1 for ; Wed, 16 Dec 2020 10:50:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/kOkP4lego7EZOuPmiRpasKtn2YczGi2a2/WA3CzwMQ=; b=MNnzjFIRmKX4sUVwoxh3oBE0OXUEOlABtBkz2E/H0Mp9pFtgwdIAKSUCGaczYtVamB TKP/yGx3TOJ1V+JM1krnMeGFD42ds6t+7xBbHE9/CaOcHgBhe4kKpA96SpkEYh3kxukV SkTyjtlTbE9/Zp55eXcCa9S5cUaL6CcRyKhP5DwqzTGnLChicP3+KDDsmFhklarqmfP/ cwkYZHhoXtRNCeMxDTJn4I0YZhCyTdOBqzO6zhlrGto3YBzrINsNIEj3EP92DQIZX3EP C7ER+4HDJyKoy3NthvU2kpasyJtb43n66eYYfEwjPvwjqASvPT4WbABlvtfY0C5VOmOx 8GcA== 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=/kOkP4lego7EZOuPmiRpasKtn2YczGi2a2/WA3CzwMQ=; b=fWKwzF2kUqsiZyCFmmg4QAn2h/Mm9Tg7ozWEPoC8RM4sjAiyb9CwNeODxgh2lwlJw3 FfITcPXtRpYdkVTdu4pkLO/Vckr+cIh1cLjvAf2eaDSr/10TG2bpcYd0c2Jag38iPytP Kfyhv+fd8rT4SgR4LTfh6Cyc+zPgOEQ1J7bDgKry8ZBgMXydB+K8s0YcdBnh3fWmjyHO nLi4OENe2D7X51zm2KDfmBR/lPgv7XuKijB921SlpojUrAVBPDXYgiGwVNWf4ANqd2TG u+5aV8vSB71VnC0+ydbbl4A8RDn/0dB238/N5gsaOO/hrtkTRxmu99I6fkspY9TNSXap CsEw== X-Gm-Message-State: AOAM530t1/Mix10S3N6T4Xfmiwiutbhs8MUhqNxeDM6heJ/XlSuuAX7u vsmwoaOaIXRXEWKf1ZGY15Q= X-Google-Smtp-Source: ABdhPJz95zvM7WJaO4qGA3KRXrQ+pu36vVfejFqWBcBO8iizRAzt3qPVvMitSrxiTJrUsxwzP4U/ug== X-Received: by 2002:a05:651c:503:: with SMTP id o3mr14178605ljp.253.1608144653148; Wed, 16 Dec 2020 10:50:53 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:52 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 25/33] diff-merges: do not imply -p for new options Date: Wed, 16 Dec 2020 21:49:21 +0300 Message-Id: <20201216184929.3924-26-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Add 'combined_imply_patch' field and set it only for old --cc/-c options, then imply -p if this flag is set instead of implying -p whenever 'combined_merge' flag is set. We don't want new --diff-merge options to imply -p, to make it possible to enable output of diffs for merges independently from non-merge commits. At the same time we want to preserve behavior of old --c/-c/-m options and their interactions with --first-parent, to stay backward-compatible. This patch is first step in this direction: it separates old "--cc/-c imply -p" logic from the rest of the options. Signed-off-by: Sergey Organov --- diff-merges.c | 12 +++++++++--- revision.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 2ac25488d53e..725db2312074 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -9,6 +9,7 @@ static void suppress(struct rev_info *revs) revs->combine_merges = 0; revs->dense_combined_merges = 0; revs->combined_all_paths = 0; + revs->combined_imply_patch = 0; } static void set_separate(struct rev_info *revs) @@ -77,10 +78,14 @@ int diff_merges_parse_opts(struct rev_info *revs, const char **argv) if (!strcmp(arg, "-m")) set_m(revs); - else if (!strcmp(arg, "-c")) + else if (!strcmp(arg, "-c")) { set_combined(revs); - else if (!strcmp(arg, "--cc")) + revs->combined_imply_patch = 1; + } + else if (!strcmp(arg, "--cc")) { set_dense_combined(revs); + revs->combined_imply_patch = 1; + } else if (!strcmp(arg, "--no-diff-merges")) suppress(revs); else if (!strcmp(arg, "--combined-all-paths")) @@ -127,8 +132,9 @@ void diff_merges_setup_revs(struct rev_info *revs) revs->first_parent_merges = 0; if (revs->combined_all_paths && !revs->combine_merges) die("--combined-all-paths makes no sense without -c or --cc"); - if (revs->combine_merges) { + if (revs->combine_merges) revs->diff = 1; + if (revs->combined_imply_patch) { /* Turn --cc/-c into -p --cc/-c when -p was not given */ if (!revs->diffopt.output_format) revs->diffopt.output_format = DIFF_FORMAT_PATCH; diff --git a/revision.h b/revision.h index dcfa14454a55..bfbae526ad6e 100644 --- a/revision.h +++ b/revision.h @@ -197,6 +197,7 @@ struct rev_info { separate_merges: 1, combine_merges:1, combined_all_paths:1, + combined_imply_patch:1, dense_combined_merges:1, first_parent_merges:1; From patchwork Wed Dec 16 18:49: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: 11978465 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1C7ADC2BBCA for ; Wed, 16 Dec 2020 18:52:32 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E2CA02342C for ; Wed, 16 Dec 2020 18:52:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732296AbgLPSwb (ORCPT ); Wed, 16 Dec 2020 13:52:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52738 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732288AbgLPSw2 (ORCPT ); Wed, 16 Dec 2020 13:52:28 -0500 Received: from mail-lf1-x12c.google.com (mail-lf1-x12c.google.com [IPv6:2a00:1450:4864:20::12c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A4D0FC0619D9 for ; Wed, 16 Dec 2020 10:50:56 -0800 (PST) Received: by mail-lf1-x12c.google.com with SMTP id y19so50902818lfa.13 for ; Wed, 16 Dec 2020 10:50:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=A1QsJWGnKchWTmtXih1Kz6avfXX9gyJFPraOVGRlFgY=; b=Gj/ksvj0LBCEjYVeIx7YiX98qiwbdPaQtMSdtjq4XqazIyc1Nf0UBauylJ/FUghYmN 0VdKMAGwM9g3csBEvBTX7ZnznPmrq+jxg38kgoh6PWSg7dSRj6mmdc6EqhvC87avzRVD 9f/ZDmCArY0VfBeZFu8C8UaCZLaBh/TUdCm4foDPK6WcxfvzGTQfg59Df5lLV5JVdm1y OOa3OBMVoOzOj81nXDtW29HpUT/iV0W2oh0FK/a99PX9UaQ/+XCPrNDBpWsDOidB4OMn 9A1VlxzowJa4OBgLnDEcAmZ2FAcYYJRLL6YPj/U1gxqp2FEBB88j7dcOeKWw0j8sH72V Uynw== 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=A1QsJWGnKchWTmtXih1Kz6avfXX9gyJFPraOVGRlFgY=; b=UOBLyfghe55YdDxwI0os0ZThwKz0GfPHDFO8lTtEwwfPADW2nHN5faIH1NUHrvOElK jMx4yRiloDFzSdU+UlmVvCIiKypEQzpiJzs66BFPX4Mz3uMdW5jQbS5woRZ73F+C+aqs LhRoHFr0yrWngKjZNH1efrTQ51KNY34ZWjdI7E2Lxtf8baahIpWA9MAHTf7MjWGEpZ5l 6F7VjmDYF0QdAjQZ4JdF6U+qGQWvgfXNk8XsVf+HZeLNANuZnchYJ9UYFx8UIuXYkOnE luyLI4qyQE2hAdgg1ug/xbYycRcEedbssI1wySnBm6p/Vo7BXai3GhTFvrRCtQHrAjw6 B9HA== X-Gm-Message-State: AOAM530jGiPpVmvil6jx+jWjfxQL26VZN+0uVAJQOc4ubvMz044bZNMP x+DhYFJbFIjlbV85FCsWH+c= X-Google-Smtp-Source: ABdhPJwoOVf/G5FXwbG3u8ZzVBwW53fbmMcEVC4/K+J+bOkfGJ2idT4v8WXFsO8VzhsawD2oiDmySg== X-Received: by 2002:a05:6512:211:: with SMTP id a17mr7671625lfo.562.1608144654411; Wed, 16 Dec 2020 10:50:54 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:53 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 26/33] diff-merges: let new options enable diff without -p Date: Wed, 16 Dec 2020 21:49:22 +0300 Message-Id: <20201216184929.3924-27-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org New options don't have any visible effect unless -p is either given or implied, as unlike -c/-cc we don't imply -p with --diff-merges. To fix this, this patch adds new functionality by letting new options enable output of diffs for merge commits only. Add 'merges_need_diff' field and set it whenever diff output for merges is enabled by any of the new options. Extend diff output logic accordingly, to output diffs for merges when 'merges_need_diff' is set even when no -p has been provided. Signed-off-by: Sergey Organov --- diff-merges.c | 16 ++++++++++------ log-tree.c | 13 +++++++++---- revision.h | 1 + 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index 725db2312074..ffe20d8daa4a 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -10,6 +10,7 @@ static void suppress(struct rev_info *revs) revs->dense_combined_merges = 0; revs->combined_all_paths = 0; revs->combined_imply_patch = 0; + revs->merges_need_diff = 0; } static void set_separate(struct rev_info *revs) @@ -51,9 +52,11 @@ static void set_dense_combined(struct rev_info *revs) static void set_diff_merges(struct rev_info *revs, const char *optarg) { + if (!strcmp(optarg, "off") || !strcmp(optarg, "none")) { + suppress(revs); + return; + } if (0) ; - else if (!strcmp(optarg, "off") || !strcmp(optarg, "none")) - suppress(revs); else if (!strcmp(optarg, "first") || !strcmp(optarg, "first-parent")) set_first_parent(revs); else if (!strcmp(optarg, "sep") || !strcmp(optarg, "separate")) @@ -64,6 +67,7 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg) set_dense_combined(revs); else die(_("unknown value for --diff-merges: %s"), optarg); + revs->merges_need_diff = 1; } /* @@ -132,12 +136,12 @@ void diff_merges_setup_revs(struct rev_info *revs) revs->first_parent_merges = 0; if (revs->combined_all_paths && !revs->combine_merges) die("--combined-all-paths makes no sense without -c or --cc"); - if (revs->combine_merges) + + if (revs->combined_imply_patch) revs->diff = 1; - if (revs->combined_imply_patch) { - /* Turn --cc/-c into -p --cc/-c when -p was not given */ + + if (revs->combined_imply_patch || revs->merges_need_diff) { if (!revs->diffopt.output_format) revs->diffopt.output_format = DIFF_FORMAT_PATCH; } - } diff --git a/log-tree.c b/log-tree.c index f9385b1dae6f..67060492ca0a 100644 --- a/log-tree.c +++ b/log-tree.c @@ -899,15 +899,21 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log int showed_log; struct commit_list *parents; struct object_id *oid; + int is_merge; + int regulars_need_diff = opt->diff || opt->diffopt.flags.exit_with_status; - if (!opt->diff && !opt->diffopt.flags.exit_with_status) + if (!regulars_need_diff && !opt->merges_need_diff) return 0; parse_commit_or_die(commit); oid = get_commit_tree_oid(commit); - /* Root commit? */ parents = get_saved_parents(opt, commit); + is_merge = parents && parents->next; + if(!is_merge && !regulars_need_diff) + return 0; + + /* Root commit? */ if (!parents) { if (opt->show_root_diff) { diff_root_tree_oid(oid, "", &opt->diffopt); @@ -916,8 +922,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log return !opt->loginfo; } - /* More than one parent? */ - if (parents->next) { + if (is_merge) { if (opt->combine_merges) return do_diff_combined(opt, commit); if (opt->separate_merges) { diff --git a/revision.h b/revision.h index bfbae526ad6e..494d86142454 100644 --- a/revision.h +++ b/revision.h @@ -194,6 +194,7 @@ struct rev_info { always_show_header:1, /* Diff-merge flags */ explicit_diff_merges: 1, + merges_need_diff: 1, separate_merges: 1, combine_merges:1, combined_all_paths:1, From patchwork Wed Dec 16 18:49: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: 11978453 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1B1CCC0018C for ; Wed, 16 Dec 2020 18:52:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E4B5E2342C for ; Wed, 16 Dec 2020 18:52:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732267AbgLPSwJ (ORCPT ); Wed, 16 Dec 2020 13:52:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732248AbgLPSwG (ORCPT ); Wed, 16 Dec 2020 13:52:06 -0500 Received: from mail-lf1-x12a.google.com (mail-lf1-x12a.google.com [IPv6:2a00:1450:4864:20::12a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ACC19C0619DA for ; Wed, 16 Dec 2020 10:50:57 -0800 (PST) Received: by mail-lf1-x12a.google.com with SMTP id l11so51012381lfg.0 for ; Wed, 16 Dec 2020 10:50:57 -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=Z4Gz7gcuIvcWK4ds8gEkioHLwrVtDhE1lPXZR3XduPc=; b=igJH56adhUVzxp1AZo1XzL9cPmANj4kDR1JmG8Z1dK3yr7Esu0QU8/pW9lLu+STOzw aHU1Izl2J4knsVZn9K1dpa4gvVO5U2z/1QV543CAeNmNeZWwGuKVgb1covu1g+iGujuy AnGTTClPM4+pLAFr8Op2kwCQR/ScaGJu4rzCq1rsCdQJk5NE1205wU9ej+FXK1XaBbXj YzzEfr749GJ4f/RRTxyXabLAqv1i2PdeT45Eu5g6Olchz5HcNSMSPps0leVlTUADyX7N cFK8YsKNc7N+7nW6mfcDSNEOW0WjXs36IANh+SQN/jDwoniMfrPEtdK7ZiVKsYsC5Oct BU1w== 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=Z4Gz7gcuIvcWK4ds8gEkioHLwrVtDhE1lPXZR3XduPc=; b=pwy97keNicRQVQVH1dfy8l2mkEtDvxIlVpsQ51bx+Db/mfhKzUOzLJotOhL7U793NE PSaxXpPsDhEDp5Mmyb/tkn3tpLHh3uv4ZaRVZs9apyFwCShcuSYQUXVHeUEE9V5PF7ki unYjvhSUWkng3y2MQPHZ2IcHQn+I9+dt4hMMtTWIIAk2Ug08MGCvn6dlbbVTIxBpFgEL qkiPJ9lsOx2eJeF6LvPlgXy74Q6I1VmazhEgG79BUL1kaOzGjui+KipnfwRU1q6xfHUw wWsbZBHGE4DMyoomzAXFRWZ+9rwZdLCrQt0XGVIIw/dfwS1r3fJzmX1DP0ib442hIrhu h7Uw== X-Gm-Message-State: AOAM530nq1xSeqh6lgtONo0aL7VGF1eQzgyguuuhxqCdh6lpE2Gi5/BG QsOZM3st/FhYnvM6/65crrs= X-Google-Smtp-Source: ABdhPJzyK8WDpWR7XFg0VEbJvBUKDuF2JgUfV9XPymUsTvSuLrwMHyJ1KpiGYr7CscbOXBYYvPAmeQ== X-Received: by 2002:a2e:91d9:: with SMTP id u25mr14432955ljg.79.1608144655400; Wed, 16 Dec 2020 10:50:55 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:54 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 27/33] diff-merges: add old mnemonic counterparts to --diff-merges Date: Wed, 16 Dec 2020 21:49:23 +0300 Message-Id: <20201216184929.3924-28-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org This adds --diff-merges={m|c|cc} values that match mnemonics of old options, for those who are used to them. Note that, say, --diff-meres=cc behaves differently than --cc, as the latter implies -p and therefore enables diffs for all the commits, while the former enables output of diffs for merge commits only. Signed-off-by: Sergey Organov --- diff-merges.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/diff-merges.c b/diff-merges.c index ffe20d8daa4a..9492cd2b871d 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -59,11 +59,14 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg) if (0) ; else if (!strcmp(optarg, "first") || !strcmp(optarg, "first-parent")) set_first_parent(revs); - else if (!strcmp(optarg, "sep") || !strcmp(optarg, "separate")) + else if (!strcmp(optarg, "sep") || !strcmp(optarg, "separate") || + !strcmp(optarg, "m")) set_separate(revs); - else if (!strcmp(optarg, "comb") || !strcmp(optarg, "combined")) + else if (!strcmp(optarg, "comb") || !strcmp(optarg, "combined") || + !strcmp(optarg, "c")) set_combined(revs); - else if (!strcmp(optarg, "dense") || !strcmp(optarg, "dense-combined")) + else if (!strcmp(optarg, "dense") || !strcmp(optarg, "dense-combined") || + !strcmp(optarg, "cc")) set_dense_combined(revs); else die(_("unknown value for --diff-merges: %s"), optarg); From patchwork Wed Dec 16 18:49: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: 11978451 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9E5CBC4361B for ; Wed, 16 Dec 2020 18:52:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 74B762342C for ; Wed, 16 Dec 2020 18:52:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732266AbgLPSwI (ORCPT ); Wed, 16 Dec 2020 13:52:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52626 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732254AbgLPSwG (ORCPT ); Wed, 16 Dec 2020 13:52:06 -0500 Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 53CE9C0619DB for ; Wed, 16 Dec 2020 10:50:59 -0800 (PST) Received: by mail-lf1-x12e.google.com with SMTP id h205so7475493lfd.5 for ; Wed, 16 Dec 2020 10:50:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=l44B7laDWj2kSc0FGsmo3vpcDiHWUHCsFGaPV/JtFto=; b=dwoRn2cNXfSHsAINQ6zJ9BuaSvmpX+HpZ274wz03LkEk1mP42d8Woe718HSP5P0mxF TdMvVjIuBJsp4QcTPPYRvieYdREZNJtTXgh+czwKH5DHYy27+bNltkLTsrjly3LVp5Y2 YC1zm+bUTMPHAHy/i+ImBFdecXX/7AG3FQaoBIZM62rF4WpneJLGPaHrDAgdTSzvMNyG hQat1yFaJo24Y0s3Y7MpZftjZcQDWBh3sfm83zxIh5JlocipVjtwepFtkja5gMaU/9uP CxEGUHCMVe2GAF0FfLimvLSef19vAFjIe7oh7JWW0pgQBXD+tFE/vxEFtlNLdge28263 9ZYQ== 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=l44B7laDWj2kSc0FGsmo3vpcDiHWUHCsFGaPV/JtFto=; b=qDjM2QS1S3rTCoo2XMj4iZsTOg65WEbczVn4+ypQqgmgHplGVpbRJgcO70Xau5Sx+f aZLV1joUhNWx/TiTQQ5d7cw1BHVZV4FpeQgWlaLmsjS69sFVPqy67mYkvHj+bYE0lwbQ uA6JA5l7q7xAOC0Uy+REHR/a93RO/dIhJOFZgwrl3Vnu8141o5G3VmuUbysOtzaC8hSx xLOmr6ty3AHabpbQmv6K4tYoWWcvB0KLyoju4tav4mcxD+OPmuSRSmZtlzrs9kTTXnpx hnOCySHSBAf9LmD68b1nCjfriZ0t6E2vQp3JbhYKrbBnCEnR6KnmhH/kaVREykcLwlFm Reaw== X-Gm-Message-State: AOAM530S5vwcX9lu0mvu+aDkCaxIEsIl2YS45VBSeSnxU7FuRxig9K02 DDmWOCdFgrqIYIK/CGdiF+w= X-Google-Smtp-Source: ABdhPJyMLS+8xW3BUYlA5T59C5IzpiKtSrX86h3LbV3mXZw1p3wXN0reXw1nABv1ayZC29WXi7aebQ== X-Received: by 2002:a2e:2f17:: with SMTP id v23mr1169618ljv.222.1608144657063; Wed, 16 Dec 2020 10:50:57 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:56 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 28/33] diff-merges: add '--diff-merges=1' as synonym for 'first-parent' Date: Wed, 16 Dec 2020 21:49:24 +0300 Message-Id: <20201216184929.3924-29-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org As we now have --diff-merges={m|c|cc}, add --diff-merges=1 as synonym for --diff-merges=first-parent, to have shorter mnemonics for it as well. Signed-off-by: Sergey Organov --- diff-merges.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/diff-merges.c b/diff-merges.c index 9492cd2b871d..63a0d78b7730 100644 --- a/diff-merges.c +++ b/diff-merges.c @@ -57,7 +57,8 @@ static void set_diff_merges(struct rev_info *revs, const char *optarg) return; } if (0) ; - else if (!strcmp(optarg, "first") || !strcmp(optarg, "first-parent")) + else if (!strcmp(optarg, "first") || !strcmp(optarg, "first-parent") || + !strcmp(optarg, "1")) set_first_parent(revs); else if (!strcmp(optarg, "sep") || !strcmp(optarg, "separate") || !strcmp(optarg, "m")) From patchwork Wed Dec 16 18:49: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: 11978469 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C8D36C2BBCD for ; Wed, 16 Dec 2020 18:52:33 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 93E5023432 for ; Wed, 16 Dec 2020 18:52:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732307AbgLPSwc (ORCPT ); Wed, 16 Dec 2020 13:52:32 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52744 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732288AbgLPSwb (ORCPT ); Wed, 16 Dec 2020 13:52:31 -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 02893C0619DC for ; Wed, 16 Dec 2020 10:51:01 -0800 (PST) Received: by mail-lf1-x135.google.com with SMTP id o17so48052184lfg.4 for ; Wed, 16 Dec 2020 10:51:00 -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=sj7YslDoRkybHL0j9cZBWvCacUMa3n1/n24L88ClS0o=; b=ObI1/nlAg4Sf9CtKar3hDUH0dwoI1oUeDEjgMr4CVk3BjI97ZB6hqRbGaJIwqXhGua objdffJ9U+Gu9wQnBlwX6DouIlcE+hLMYqo7e82LAdvHSUDIYAz7nY8aRXzgXjH6/U8T h2PV18gcxJdLeQMtZyKmwbhQdfco6e6uQPJur0wjm09ozUT8PJU874OTdTe5+1tee6Tl YAiEiHilwZpggUA9eTioj//Jr3vh8Esi69h5jcHW1dKhhT2Y5/QWLXvTS0LsY7qMIc5E CGKh3Kn6cem+IvAdC4SxCs1WWjmr4QpzD/vx6n7dQuGEiEweEM2UNYt/GEgE+O9E2Wdm XxyA== 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=sj7YslDoRkybHL0j9cZBWvCacUMa3n1/n24L88ClS0o=; b=catYBGrpHNNrqyDvkMEPKkOnRh9YXvpIw+ceIlofmWpOCpEtRUDd/EYGx4nTPMSMb0 sTrLOMa8AIoRTeQcd1ksBt1hqq9ZjKe7gbT9BIhpUlhK9LAk1AKlaPT3h5fbHOiFTUVP Hu5+8XXEBeHVkm1fBzQmPJCUvb6E9f53TNNh19QCzdrHa2cN2mN6tVcwZFiUteh38Zov wFybC6vXetBaVKIV0ebImdP7n9BRK+QY4bq+w2xFn8H6imIlQRbqAbtLsrpxbh3wEeus yauTL5n5UXQMskYG8Pl7rfEsgsFqBqqHtGc5uoQvgg8QtagVbdX6/HK7GDj/WX6o5TxE RD7g== X-Gm-Message-State: AOAM532o74QbnBolhu1+LFx3ePRDIM76LP841xgLczymDKfhI3OFpELr z277zFMdknTn6c3fKpopsDM= X-Google-Smtp-Source: ABdhPJw65m3caCvxs+3XPh5AMjN5wO3iTEu2GsXs+HPrN40IVfVH7+Aqn8o0RAy+LPBhTr0P9ZqLGw== X-Received: by 2002:a2e:2405:: with SMTP id k5mr14794596ljk.185.1608144658654; Wed, 16 Dec 2020 10:50:58 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:57 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 29/33] doc/git-log: describe new --diff-merges options Date: Wed, 16 Dec 2020 21:49:25 +0300 Message-Id: <20201216184929.3924-30-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Describe all the new --diff-merges options in the git-log.txt and adopt description of originals accordingly. Signed-off-by: Sergey Organov --- Documentation/git-log.txt | 85 ++++++++++++++++++++++++--------------- 1 file changed, 52 insertions(+), 33 deletions(-) diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt index 2b8ac5ff882a..27bc619490c6 100644 --- a/Documentation/git-log.txt +++ b/Documentation/git-log.txt @@ -120,45 +120,64 @@ DIFF FORMATTING By default, `git log` does not generate any diff output. The options below can be used to show the changes made by each commit. -Note that unless one of `-c`, `--cc`, or `-m` is given, merge commits -will never show a diff, even if a diff format like `--patch` is -selected, nor will they match search options like `-S`. The exception is -when `--first-parent` is in use, in which merges are treated like normal -single-parent commits (this can be overridden by providing a -combined-diff option or with `--no-diff-merges`). +Note that unless one of `--diff-merges` variants (including short +`-m`, `-c`, and `--cc` options) is explicitly given, merge commits +will not show a diff, even if a diff format like `--patch` is +selected, nor will they match search options like `-S`. The exception +is when `--first-parent` is in use, in which case `first-parent` is +the default format. --c:: - With this option, diff output for a merge commit - shows the differences from each of the parents to the merge result - simultaneously instead of showing pairwise diff between a parent - and the result one at a time. Furthermore, it lists only files - which were modified from all parents. - ---cc:: - This flag implies the `-c` option and further compresses the - patch output by omitting uninteresting hunks whose contents in - the parents have only two variants and the merge result picks - one of them without modification. +--diff-merges=(off|none|first-parent|1|separate|m|combined|c|dense-combined|cc):: +--no-diff-merges:: + Specify diff format to be used for merge commits. Default is + `off` unless `--first-parent` is in use, in which case + `first-parent` is the default. ++ +--diff-merges=(off|none)::: +--no-diff-merges::: + Disable output of diffs for merge commits. Useful to override + implied value. ++ +--diff-merges=first-parent::: +--diff-merges=1::: + This option makes merge commits show the full diff with + respect to the first parent only. ++ +--diff-merges=separate::: +--diff-merges=m::: +-m::: + This makes merge commits show the full diff with respect to + each of the parents. Separate log entry and diff is generated + for each parent. `-m` is different in that it doesn't produce + any output without `-p`. ++ +--diff-merges=combined::: +--diff-merges=c::: +-c::: + With this option, diff output for a merge commit shows the + differences from each of the parents to the merge result + simultaneously instead of showing pairwise diff between a + parent and the result one at a time. Furthermore, it lists + only files which were modified from all parents. Historically, + `-c` enables diff output for non-merge commits as well. ++ +--diff-merges=dense-combined::: +--diff-merges=cc::: +--cc::: + With this option the output produced by + `--diff-merges=combined` is further compressed by omitting + uninteresting hunks whose contents in the parents have only + two variants and the merge result picks one of them without + modification. Historically, `--c` enables diff output for + non-merge commits as well. --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 Wed Dec 16 18:49: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: 11978457 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E8131C4361B for ; Wed, 16 Dec 2020 18:52:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B64A22342C for ; Wed, 16 Dec 2020 18:52:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732271AbgLPSwK (ORCPT ); Wed, 16 Dec 2020 13:52:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52630 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732260AbgLPSwG (ORCPT ); Wed, 16 Dec 2020 13:52:06 -0500 Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4A51FC0619DD for ; Wed, 16 Dec 2020 10:51:02 -0800 (PST) Received: by mail-lf1-x133.google.com with SMTP id m25so50938099lfc.11 for ; Wed, 16 Dec 2020 10:51:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=F7skkKHM5R05UGdkMu1617woWQOZ5h6BpD7foIYbeG8=; b=DUD5SnLTAzGR5KYNFqM4o6EZd7xSq2lJSWAXMfZ7+Zy1Km/ShFXwe8Epq0xF2z9av7 zTq+0qnFT8tasNK4mvjzv2y6XYLQsXHBA2zWKYBkrrvfJ8CIt6YLHwHfJ99drXXCwFfm fFJCBAncT7JMgJtxohx8+aGGuqTRbJu9mmUDZOzvzEvIOhk2LGZ4rP0NbVpcMQl2fRj1 ufYPA/NwUE0Ot1b3Wl4U/5TAFpAlPF0S/CpLRtNLyO9r6x6ubD8fk+c0nJveBatVM576 YEFYBi6PUg+4tdSZBRxHMT88ewjSPIP3napqu/TekCXLKnMQfm36yt6bfOpxLjoGOrTO W/Ow== 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=YjxwBVanPfZMl9FRlUhXKcd5IHXGcBCgiOHrdZ5D8DHpnAsDDeWacy0wIU2L7HyzwH nsELx8m7ylM2kPcZDxSb7qnipJpu37gpUOQoBuyLdYbATOcutY5I3kBIFdeDx7fgRYsq IVTQq9WWqJsSk0EYIgXareb3pGxGug4vszbKWG+f4JVqmOOpKqVnoNOlfkWL3X/kTEEq wN3jByph/htg/TjLFSA9++HLDTVftnZG4+NI9ZYzmGEAF6DVI4YzlS46xmFeSCsDD3aw Czos102Xq1GSxjNu4WCEgALLfTUDH+7nc2uhFi76S0an4VelOW4nOkxQ+/BDi1T1hlsl rW7A== X-Gm-Message-State: AOAM530BEFQzv0/GNEvoTEplAd+62Jk6JzgQ4Cgzim4dYtciGlN81P+R B19qS1nSh/SY2e4ieTa7da0= X-Google-Smtp-Source: ABdhPJya9kQPg/zFX94g+NdE8TrAneCk1T9oGgZueiapSijnPrSFM7U7LAvNauIrLm9uSkUiRURNbQ== X-Received: by 2002:a2e:2a86:: with SMTP id q128mr15013825ljq.158.1608144660033; Wed, 16 Dec 2020 10:51:00 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.50.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:50:59 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 30/33] doc/diff-generate-patch: mention new --diff-merges option Date: Wed, 16 Dec 2020 21:49:26 +0300 Message-Id: <20201216184929.3924-31-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 Wed Dec 16 18:49: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: 11978455 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 93387C2BBCA for ; Wed, 16 Dec 2020 18:52:10 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6BA222342C for ; Wed, 16 Dec 2020 18:52:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732255AbgLPSwJ (ORCPT ); Wed, 16 Dec 2020 13:52:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52628 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732259AbgLPSwG (ORCPT ); Wed, 16 Dec 2020 13:52:06 -0500 Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5385AC0619DE for ; Wed, 16 Dec 2020 10:51:03 -0800 (PST) Received: by mail-lf1-x12d.google.com with SMTP id o19so25353328lfo.1 for ; Wed, 16 Dec 2020 10:51:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PaSmZ/RBecu+NFyjcFfJUxhbi320cgCBZWTJ9QUWVDw=; b=LCG7jhccGx+mZio3CxOJ4/5RPLjqaisEjM1sFOQDCVG4rqea2eH+FVvp7EyiUXzDGX kqpH451BXMELBk5Qy78WSOHMjT8fXa2kaZ4T1WmZ1DUz6fdIEPkm0OrjtepokjNtMnv8 KVhVld6OW90qQ8HUcvornDTDwPAO5fNKgkB80LzldzUdsYPetYXYK7r6lAMoDPZipHAe WKscFJ/CqLXJ/DbYlTJYjxqrowEoVVORdAwuc/r1JzU2fEKHcztevXGq11e8uxsmq8sC uR8yv6BssYbI6Wl2p6ol6A/UA4d5mCvuxjs0EEUxhew0oy9MuvAR98BNZxLd0QhnmdXR y1kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=PaSmZ/RBecu+NFyjcFfJUxhbi320cgCBZWTJ9QUWVDw=; b=jVKkSD4qsmz8XDm16mK895neCVx3xyNJhqBQvw81o7G0/KWm/7izIyvmI5bShK1T+h G2w/1c5ahyw3dzBdVZykbh4BS/lcw2aX7XaGSJCl98UHLhdFgCvW+9gvNFEW/ZPh6ZkP 7xsRoLQUNgCGFeiJXJr2BSuvBDFVeFsgnWVZGhS60Sapc8Z7C1hngHcOkCCbxzE9Sxoi pRzfG8vIK4i9URwTH/9EDZE2lO9ZITZp7yRlpyrhn76mCmPjqF18pGVBTSJQFoR9DIIk d3sqHCI3gNXMVEjM5GXKtyVlP2b5i933/CzLc+N1rLgO/x5twzdOggUma4IjyxY8h7uq 5rvg== X-Gm-Message-State: AOAM530i1nUPB8jW/Scrjpz5X7g3jGvH7WnixshEFJiVMJ9Bx9GivO5Q 4+gpNcmiYylkJTZr6iJDXnw= X-Google-Smtp-Source: ABdhPJzsVVM1vzUoSOgXMIMiuPE3yV18h2tsTJwK5ssQq8gzyf9IEgCqEXZOecZPZAVf5wTOJ2u3UQ== X-Received: by 2002:a2e:9296:: with SMTP id d22mr5891373ljh.197.1608144661081; Wed, 16 Dec 2020 10:51:01 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.51.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:51:00 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 31/33] doc/rev-list-options: document --first-parent changes merges format Date: Wed, 16 Dec 2020 21:49:27 +0300 Message-Id: <20201216184929.3924-32-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org After introduction of the --diff-merges=first-parent, the --first-parent sets the default format for merges to the same value as this new option. Document this behavior and add corresponding reference to --diff-merges. Signed-off-by: Sergey Organov --- Documentation/rev-list-options.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/rev-list-options.txt b/Documentation/rev-list-options.txt index 002379056a07..96cc89d157d2 100644 --- a/Documentation/rev-list-options.txt +++ b/Documentation/rev-list-options.txt @@ -130,6 +130,11 @@ parents) and `--max-parents=-1` (negative numbers denote no upper limit). this option allows you to ignore the individual commits brought in to your history by such a merge. +ifdef::git-log[] + This option also changes default diff format for merge commits + to `first-parent`, see `--diff-merges=first-parent` for details. +endif::git-log[] + --not:: Reverses the meaning of the '{caret}' prefix (or lack thereof) for all following revision specifiers, up to the next `--not`. From patchwork Wed Dec 16 18:49: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: 11978471 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.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6E950C4361B for ; Wed, 16 Dec 2020 18:52:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2A9FC23407 for ; Wed, 16 Dec 2020 18:52:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732291AbgLPSwd (ORCPT ); Wed, 16 Dec 2020 13:52:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52746 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732298AbgLPSwb (ORCPT ); Wed, 16 Dec 2020 13:52:31 -0500 Received: from mail-lf1-x132.google.com (mail-lf1-x132.google.com [IPv6:2a00:1450:4864:20::132]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40D2BC061794 for ; Wed, 16 Dec 2020 10:51:05 -0800 (PST) Received: by mail-lf1-x132.google.com with SMTP id x20so31452547lfe.12 for ; Wed, 16 Dec 2020 10:51: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=R3srUsdd9p3VydjEtA3btL6rUTsfe3/4rnng1b9QE7k=; b=Kk7xsiVf99h+4B1DwtevuF31soPg9pvoSoA42rZfU0LAOEgpSHw2ib9lHyUYO7g+3s T5+O37IGkdZ5iJkBvovUg1qFXC+W6qehfk87Mcqz6v+FHdCobLU1/9OQiF67RYvXNJsD CsAQzn9BxrFDv03jzcs2tMkT0lUp8JH52JTW0SW66RwNUzzsRCpSfKXpAZhKVkxBHlhw XnwbccZljd0PwKluPBRzeMxa40yabuv+kVQLDUL2RxiwlhQtW4LJHhyISN+vkEfFG+0h 3Rz8xGf+9ow1BykyzZVgTK690bzuxm7yvTkcBZ/dK86pkrPyxPNCXcNs5Fzz1tEON/sc xbjg== 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=R3srUsdd9p3VydjEtA3btL6rUTsfe3/4rnng1b9QE7k=; b=jB7vCpTpFccFSDntkrDfPGRQX07FejtEndKPTG+ECQLNTHslUW8uXywp9WBWldwETZ R3jc0J6m8sFcTDZKtcb5+8HKZK464k04HxMX7kox1YFa75yTvMTSfdkW+S7HdA0a9I4e qwxOp7DxS5DMy3LTGW0pnFM/x9DVgiaRuOhjLkVyuXthUGf30j5lcVDbXkPLZ+0/8IJ/ RS/WlagD0GAI+SoIVtsMcQ431K6xMt9o2TaUqKHDDqsZOySgwFaHnY7ArQgStafnivic HmxAjQTDTFvsJ5+9lJe8CwQfmHgcsYDLFsFrNX1BKL6Dc+KfDqQ284lvwZt4mB7bYa5j EIFA== X-Gm-Message-State: AOAM530z0hwPQG3+XJp/uLloWErM7IrOZnndeuL+s8QdcEb0S2McsRIG rBLCFyh+uAODMXYvYxtW1wg= X-Google-Smtp-Source: ABdhPJy1wu0rStodmJYii95+uvBBa5rMz8UmtVphDHbqzncxqlfgJLQ7Nd53A9NAzdYBHXUUl6psnA== X-Received: by 2002:a19:c70b:: with SMTP id x11mr13390161lff.258.1608144663017; Wed, 16 Dec 2020 10:51:03 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.51.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:51:01 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 32/33] doc/git-show: include --diff-merges description Date: Wed, 16 Dec 2020 21:49:28 +0300 Message-Id: <20201216184929.3924-33-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-1-sorganov@gmail.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Move description of --diff-merges option from git-log.txt to diff-options.txt so that it is included in the git-show help. Signed-off-by: Sergey Organov --- Documentation/diff-options.txt | 53 ++++++++++++++++++++++++++++++++++ Documentation/git-log.txt | 53 +--------------------------------- Documentation/git-show.txt | 7 +++-- 3 files changed, 59 insertions(+), 54 deletions(-) diff --git a/Documentation/diff-options.txt b/Documentation/diff-options.txt index 573fb9bb71e2..98db2be423dc 100644 --- a/Documentation/diff-options.txt +++ b/Documentation/diff-options.txt @@ -33,6 +33,59 @@ endif::git-diff[] show the patch by default, or to cancel the effect of `--patch`. endif::git-format-patch[] +ifdef::git-log[] +--diff-merges=(off|none|first-parent|1|separate|m|combined|c|dense-combined|cc):: +--no-diff-merges:: + Specify diff format to be used for merge commits. Default is + {diff-merges-default} unless `--first-parent` is in use, in which case + `first-parent` is the default. ++ +--diff-merges=(off|none)::: +--no-diff-merges::: + Disable output of diffs for merge commits. Useful to override + implied value. ++ +--diff-merges=first-parent::: +--diff-merges=1::: + This option makes merge commits show the full diff with + respect to the first parent only. ++ +--diff-merges=separate::: +--diff-merges=m::: +-m::: + This makes merge commits show the full diff with respect to + each of the parents. Separate log entry and diff is generated + for each parent. `-m` is different in that it doesn't produce + any output without `-p`. ++ +--diff-merges=combined::: +--diff-merges=c::: +-c::: + With this option, diff output for a merge commit shows the + differences from each of the parents to the merge result + simultaneously instead of showing pairwise diff between a + parent and the result one at a time. Furthermore, it lists + only files which were modified from all parents. Historically, + `-c` enables diff output for non-merge commits as well. ++ +--diff-merges=dense-combined::: +--diff-merges=cc::: +--cc::: + With this option the output produced by + `--diff-merges=combined` is further compressed by omitting + uninteresting hunks whose contents in the parents have only + two variants and the merge result picks one of them without + modification. Historically, `--c` enables diff output for + non-merge commits as well. + +--combined-all-paths:: + This flag causes combined diffs (used for merge commits) to + list the name of the file from all parents. It thus only has + effect when `--diff-merges=[dense-]combined` is in use, and + is likely only useful if filename changes are detected (i.e. + when either rename or copy detection have been requested). +endif::git-log[] + -U:: --unified=:: Generate diffs with lines of context instead of diff --git a/Documentation/git-log.txt b/Documentation/git-log.txt index 27bc619490c6..727d20e1a2ab 100644 --- a/Documentation/git-log.txt +++ b/Documentation/git-log.txt @@ -127,59 +127,8 @@ selected, nor will they match search options like `-S`. The exception is when `--first-parent` is in use, in which case `first-parent` is the default format. ---diff-merges=(off|none|first-parent|1|separate|m|combined|c|dense-combined|cc):: ---no-diff-merges:: - Specify diff format to be used for merge commits. Default is - `off` unless `--first-parent` is in use, in which case - `first-parent` is the default. -+ ---diff-merges=(off|none)::: ---no-diff-merges::: - Disable output of diffs for merge commits. Useful to override - implied value. -+ ---diff-merges=first-parent::: ---diff-merges=1::: - This option makes merge commits show the full diff with - respect to the first parent only. -+ ---diff-merges=separate::: ---diff-merges=m::: --m::: - This makes merge commits show the full diff with respect to - each of the parents. Separate log entry and diff is generated - for each parent. `-m` is different in that it doesn't produce - any output without `-p`. -+ ---diff-merges=combined::: ---diff-merges=c::: --c::: - With this option, diff output for a merge commit shows the - differences from each of the parents to the merge result - simultaneously instead of showing pairwise diff between a - parent and the result one at a time. Furthermore, it lists - only files which were modified from all parents. Historically, - `-c` enables diff output for non-merge commits as well. -+ ---diff-merges=dense-combined::: ---diff-merges=cc::: ---cc::: - With this option the output produced by - `--diff-merges=combined` is further compressed by omitting - uninteresting hunks whose contents in the parents have only - two variants and the merge result picks one of them without - modification. Historically, `--c` enables diff output for - non-merge commits as well. - ---combined-all-paths:: - This flag causes combined diffs (used for merge commits) to - list the name of the file from all parents. It thus only has - effect when `--diff-merges=[dense-]combined` is in use, and - is likely only useful if filename changes are detected (i.e. - when either rename or copy detection have been requested). - - :git-log: 1 +:diff-merges-default: `off` include::diff-options.txt[] include::diff-generate-patch.txt[] diff --git a/Documentation/git-show.txt b/Documentation/git-show.txt index fcf528c1b30d..2b1bc7288d5f 100644 --- a/Documentation/git-show.txt +++ b/Documentation/git-show.txt @@ -45,10 +45,13 @@ include::pretty-options.txt[] include::pretty-formats.txt[] -COMMON DIFF OPTIONS -------------------- +DIFF FORMATTING +--------------- +The options below can be used to change the way `git show` generates +diff output. :git-log: 1 +:diff-merges-default: `dense-combined` include::diff-options.txt[] include::diff-generate-patch.txt[] From patchwork Wed Dec 16 18:49: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: 11978473 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 9DF43C2BBCD for ; Wed, 16 Dec 2020 18:52:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5F8F823432 for ; Wed, 16 Dec 2020 18:52:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732297AbgLPSwe (ORCPT ); Wed, 16 Dec 2020 13:52:34 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52748 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732300AbgLPSwb (ORCPT ); Wed, 16 Dec 2020 13:52:31 -0500 Received: from mail-lf1-x12d.google.com (mail-lf1-x12d.google.com [IPv6:2a00:1450:4864:20::12d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 447D8C0619DF for ; Wed, 16 Dec 2020 10:51:06 -0800 (PST) Received: by mail-lf1-x12d.google.com with SMTP id h205so7476295lfd.5 for ; Wed, 16 Dec 2020 10:51: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=o+Hn9/z7jtos5YDGkqDtmMK1/VUsxAr7Rhg4uqj30Sk=; b=FETr/jAnSKt2HEaOrvRCqLb9bWofKSx0NZuzheEDPcwwEBn9CCde6D+BQ1WjBz20At CdMLvbMEM38Uqh2iVC4GQRHoY15m5J9FwCDe5nBHuq7TP+u4bm8/F2eux1Wp6rhlYX/h H8a6VnDM6dMH4MjLrbpefq2DEUOVj9YxWD8zwoL58M6eZ2v5BA18MGwFwNGzZUT9ph/4 VcW52HAOhv3iZqCuKU6z29fBkd7W5X0XyE6sEwPM7V4rO+8/gEOLQtAIF/NgExpRJka2 ZUiCuKjA/ML2jsf+rLGpe87JXtkfkSVq90pKv2ajK0Cvk2rglzP8GsFNtulUvzXNfih8 PhWA== 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=CYd66CL/R3ILEVThliAnfz1XVFcKnf7FSIzCkYhowQ1gY+2ZULnSR+lFKg8STo0ee1 G7uNJSRSscjBSkmR6BQUSyCsffFF6Lr2Mfv09H+KIZb0bwav8hoL5Te/VAPUPKG+YseB b9wGALYsgwdw7XAWd66vZNqWh2IgJABfc7pqqjafB6Crmy8Dwwmw69SRpfu6xcFCg4d5 03LHmQWeGzuWOXgBgbtUPqQ05vHPdlAZWIl3xL0cEJG1OPNERI40MF6OcIkCtArjLNbH eNZvvKqaWxKQk9Jw1BQRjC6NigZbTP0jgD1XfkJRGp/mNnI0ZIHADA0tihz736XVxUts crCA== X-Gm-Message-State: AOAM533w3L7oDTQE/SYLE1fCx0t+q6aCti8r4dD+mCPiH7pqTjPsM1uh cnxanCdwnvqZQIUJFZxIqko= X-Google-Smtp-Source: ABdhPJz6PhmsKvCeCKST+9TYF5CAG3l+OvSpyutVFI85iggiFOcdcDc8/8DveeD3TVMiY0f3+dtx4w== X-Received: by 2002:a2e:984c:: with SMTP id e12mr10669033ljj.71.1608144664029; Wed, 16 Dec 2020 10:51:04 -0800 (PST) Received: from osv.localdomain ([89.175.180.246]) by smtp.gmail.com with ESMTPSA id 197sm313871lfe.158.2020.12.16.10.51.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 16 Dec 2020 10:51:03 -0800 (PST) From: Sergey Organov To: Junio C Hamano Cc: Jeff King , Philip Oakley , Elijah Newren , git@vger.kernel.org, Sergey Organov Subject: [PATCH v2 33/33] t4013: add tests for --diff-merges=first-parent Date: Wed, 16 Dec 2020 21:49:29 +0300 Message-Id: <20201216184929.3924-34-sorganov@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201216184929.3924-1-sorganov@gmail.com> References: <20201101193330.24775-1-sorganov@gmail.com> <20201216184929.3924-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 +$