From patchwork Tue Apr 16 09:33:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902429 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A0CF7161F for ; Tue, 16 Apr 2019 09:34:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7D8561FE82 for ; Tue, 16 Apr 2019 09:34:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 718282892B; Tue, 16 Apr 2019 09:34:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0B7151FE82 for ; Tue, 16 Apr 2019 09:34:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728948AbfDPJeh (ORCPT ); Tue, 16 Apr 2019 05:34:37 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:43172 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726739AbfDPJeh (ORCPT ); Tue, 16 Apr 2019 05:34:37 -0400 Received: by mail-pg1-f193.google.com with SMTP id z9so10046397pgu.10 for ; Tue, 16 Apr 2019 02:34:37 -0700 (PDT) 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=W3W1FhLdyUO50vG4zZkd9uJrGRDawVoKF5asVD25MyA=; b=uZHXB+ItDMlI+rn5U48ZqohI2J4A8IxfGKVXzsppf76bYXOk94oOXfkOH7YVc0N8DU Gx93OYs3XF9YME8y1qOdqjYPcXjdjZk5IGEHjJU5JSGa0jbL/6Z5AjixpUnhs2K8ce48 dJvKU0SYruG9DeKRuolP0+bTb9dbaBLMnK3fbUUamzY2nJpqICzl/V7RbhhIks3+ZpdL 9gk3aEylWnFIrjz4soUITEJfMVDzGusPJJaIymkDgT007NPvjw1mYsCER6KMxJ3FIUW/ MpmU/UUTPHPxLDXy8Nl37uQ26gj1DDk1YYT1BVIXnVhq+LhMsDR6f8uUxpTQFtTCKAc6 Tcpw== 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=W3W1FhLdyUO50vG4zZkd9uJrGRDawVoKF5asVD25MyA=; b=to0+jzZccSUs0zW8Fi4lIQuN/FOo4p42uJ/b8iGDm2DqIALbX2u87Mv5HDoUDwJAsv fto3xAZmF6IUBGCseVxEmRQngTCHLJNqU34caNSBWRwWaPUhD4ds/ou96PHbSrWUYhRy 10Xbw97MwLH+jDR7dAZ5UzwBF4mU/O0yZVvIx9kupgp9O94sO/V8GGIBhbGXMo/NEDjx GS4zLJzPvFaLzsXrOb29OD4I2cYUQ/Jf1xwR0dCwcTYybyZZCWqHvyROAlyO0ooRCaza 1b6MX49xXx8NrpDOKUpFPfjCWymjIi+VLVEHTDrkrvgKbsFrB0KYjm28HxqcqJNHGBri 0+mw== X-Gm-Message-State: APjAAAWo9vRB0W2Vc0l6XkyDGFYz7aYvP6Afa0SWkOel2QOepb/VMllk 0j67O8bD6W8e0iYzwvNwl3Q= X-Google-Smtp-Source: APXvYqzfdP5LiRRm7PumAF3GrIDiVTiPPQObG1guvGrHGQURf89O14KmlR8MaaFeYfnbtqUux5Ablg== X-Received: by 2002:a63:be02:: with SMTP id l2mr71393877pgf.48.1555407277081; Tue, 16 Apr 2019 02:34:37 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id c3sm96081855pfg.88.2019.04.16.02.34.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:34:33 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:34:29 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 01/34] builtin rebase: use FREE_AND_NULL Date: Tue, 16 Apr 2019 16:33:08 +0700 Message-Id: <20190416093341.17079-2-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: SZEDER Gábor Use the macro FREE_AND_NULL to release memory allocated for 'head_name' and clear its pointer. Patch generated with 'contrib/coccinelle/free.cocci' and Coccinelle v1.0.7 (previous Coccinelle versions don't notice this). Signed-off-by: SZEDER Gábor Signed-off-by: Nguyễn Thái Ngọc Duy --- builtin/rebase.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/builtin/rebase.c b/builtin/rebase.c index 77deebc65c..868bcd1446 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -1592,8 +1592,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix) branch_name = options.head_name; } else { - free(options.head_name); - options.head_name = NULL; + FREE_AND_NULL(options.head_name); branch_name = "HEAD"; } if (get_oid("HEAD", &options.orig_head)) From patchwork Tue Apr 16 09:33:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902431 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0CE9A161F for ; Tue, 16 Apr 2019 09:34:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E43C62835B for ; Tue, 16 Apr 2019 09:34:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D59FD2843C; Tue, 16 Apr 2019 09:34:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7F8152835B for ; Tue, 16 Apr 2019 09:34:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728910AbfDPJeo (ORCPT ); Tue, 16 Apr 2019 05:34:44 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:40266 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726739AbfDPJeo (ORCPT ); Tue, 16 Apr 2019 05:34:44 -0400 Received: by mail-pl1-f193.google.com with SMTP id b3so10050921plr.7 for ; Tue, 16 Apr 2019 02:34:43 -0700 (PDT) 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=LpQW3yOzpUmYqNvUIPEwu5KJKOV3WPI63AuYu/9lLnY=; b=UG7r9/o5wPupQunnOVOPkIYtvD8V4eJr9N5Ec5PnhOTgVs6NdO7O1lobtdR8MLLtfs jXHJ5ko+ETQge42kky/5u6orTDrX/Z1N35ZBYERGKsNHLZp58VCGt7Ck11mp91QHyjZH v8KMg++oZoDZZ45+dHdlv3yv11Vph4eRKihU5724WooC9r3DvLMMJ8Q86FipeRAuNeGb xZ2aQZX//aCFLZmuxhN351Vdt6VOTCPSwrrVmTxjCzQOZ0tMQFz22sUiwyOssxqvXj9Q st8Lz18uCRlmuGzn338DDoBJjfthVi53iUdUtFoENjyL+ACOY9Rlsz/GFBnFztzF4vfg JvnQ== 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=LpQW3yOzpUmYqNvUIPEwu5KJKOV3WPI63AuYu/9lLnY=; b=SwCosj3fhL2bZDiaQu7Jsrz2moNffDNzhrtr3GdQxQsF8nMYnpP+b/cre5Wx+OeJ9j f2q7EtF7S0+TaQ42+RMrUJnap459NO6F4z+5RZgqgYgvmn8eMU+w1Dqj1BBK1rOKUmlt 3IchoPMg2R/hdW0EXLS83d1zSX92n3B2jIQEFHT5/nHg14P1MFLeHNr0f2dfefSY2NFJ MjmhlHCEbtN+varvn+lnfHP0eVcV8xsfCdPB1kANck/GVkYlLk7AyKW+dI6E/RwtodyW OG9FXnjxvDRiFel4RHFCr0E8MMLQjeQOMMW2FQ/F5XefuzNqLLE8fOPfqpvbrpQppcxc F0kw== X-Gm-Message-State: APjAAAXqZnS1Dy5GM0gVovBRqikvSdHZoBj9e8s8yhymfsHdsZLiphjR tE0QPzhtSZKcO/1tdrIE6II= X-Google-Smtp-Source: APXvYqzHrKnUlZYcN07hjE6KRPd6jpdab2FOPxUfa8Mq4Wt+FHbWbLz2kGVZeWP1s8nbybM9isTNWw== X-Received: by 2002:a17:902:f084:: with SMTP id go4mr78364692plb.235.1555407283309; Tue, 16 Apr 2019 02:34:43 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id h127sm49183153pgc.31.2019.04.16.02.34.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:34:42 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:34:37 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 02/34] builtin rebase: use oideq() Date: Tue, 16 Apr 2019 16:33:09 +0700 Message-Id: <20190416093341.17079-3-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: SZEDER Gábor Use oideq() instead of !oidcmp(), as it is more idiomatic, and might give the compiler more opportunities to optimize. Patch generated with 'contrib/coccinelle/free.cocci' and Coccinelle v1.0.7 (previous Coccinelle versions don't notice this). Signed-off-by: SZEDER Gábor Signed-off-by: Nguyễn Thái Ngọc Duy --- builtin/rebase.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/builtin/rebase.c b/builtin/rebase.c index 868bcd1446..c064909329 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -1792,7 +1792,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix) * we just fast-forwarded. */ strbuf_reset(&msg); - if (!oidcmp(&merge_base, &options.orig_head)) { + if (oideq(&merge_base, &options.orig_head)) { printf(_("Fast-forwarded %s to %s.\n"), branch_name, options.onto_name); strbuf_addf(&msg, "rebase finished: %s onto %s", From patchwork Tue Apr 16 09:33:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902433 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 790AE1390 for ; Tue, 16 Apr 2019 09:34:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5A52D2835B for ; Tue, 16 Apr 2019 09:34:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4E0062843C; Tue, 16 Apr 2019 09:34:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E50432835B for ; Tue, 16 Apr 2019 09:34:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728952AbfDPJet (ORCPT ); Tue, 16 Apr 2019 05:34:49 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:34456 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726739AbfDPJet (ORCPT ); Tue, 16 Apr 2019 05:34:49 -0400 Received: by mail-pl1-f193.google.com with SMTP id y6so10077408plt.1 for ; Tue, 16 Apr 2019 02:34:49 -0700 (PDT) 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=T/8jRsl/lbTooZJyX5DaKzNtxhJuqTU7J9fS42CMkCM=; b=GAiWHZQKjL71WYclhWNAsCrLvZmR9N9briNGBxYDJpOhGyFSoEmz70rDnlnhoGKUyn 0olC0aN46bYQG/g0BzDFWQ61vAv9NCt8H0uTrvNEY8rn5so+3NphjOjJJ8TIqv6Cd3gj +d95Dcso+J1UfxiQ2fuaWE9e0TQAsrP4dR272i8rbR/5AvAi13ssJGZnfpssKoA7tGZS dGaveEj8JtOcpC1nDuQj7VSDWP3QugCfURPYyXOW/s+mbN2UgA7J4TweRXjy/OzJ7uEF Mgj+8yQgIhCjGx4Xpy2cSWKochNoQDBqY5aGgmaqGQjZXPFp759sXCNPuPjjuaQvCjar 5Tng== 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=T/8jRsl/lbTooZJyX5DaKzNtxhJuqTU7J9fS42CMkCM=; b=PvX5kWQwpnKAc2/pvSh/9Tqgeh7u7bwaKKPN4uB4qgv3QvcynwLyYtUdX6UKoYWXYT yXyN71lh69X+lDd/8Eg4WFw3a1S7VGij/yZIVZAj9gjeINDpHxfl4zvU0yar1oTJ4WxI 6zQYPfsPXDfH2jqjzg96YN4DEfZlIYethOFcfbSRLCkPfnycnwOLM18XOC51VoOueUeA b5IR2/ZCZIn8BHSjP2irZ94pcAjXEnggEGx+YTYR9QeOyG6fkBN/zR26khDdbqONv/8q Yc0pzx8RdJPXK+D9ZX+HjRMtHS+xZGVxJQcNNmkTyVilGQwX8cVmC8kVtIPcqJDOVD3m pglw== X-Gm-Message-State: APjAAAVeMZUlIKtuXfXxKTfLYxB9a+5/jM3M3HMGqm1Oy5G+IaFoGlos iMpJgKfZ0Pb/XuXYr+x4ayE= X-Google-Smtp-Source: APXvYqy+d7RuzO+FDIOPnqBx/QQMgL2h4ajZX99js5+sXeKB16UFg5xlIM6s8vyBnzzPSbXFHQFbWA== X-Received: by 2002:a17:902:be04:: with SMTP id r4mr82434829pls.218.1555407288945; Tue, 16 Apr 2019 02:34:48 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id f7sm86548682pga.56.2019.04.16.02.34.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:34:47 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:34:43 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 03/34] packfile.c: add repo_approximate_object_count() Date: Tue, 16 Apr 2019 16:33:10 +0700 Message-Id: <20190416093341.17079-4-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- packfile.c | 14 +++++++------- packfile.h | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/packfile.c b/packfile.c index 16bcb75262..2ad4fab2f8 100644 --- a/packfile.c +++ b/packfile.c @@ -893,25 +893,25 @@ static void prepare_packed_git(struct repository *r); * all unreachable objects about to be pruned, in which case they're not really * interesting as a measure of repo size in the first place. */ -unsigned long approximate_object_count(void) +unsigned long repo_approximate_object_count(struct repository *r) { - if (!the_repository->objects->approximate_object_count_valid) { + if (!r->objects->approximate_object_count_valid) { unsigned long count; struct multi_pack_index *m; struct packed_git *p; - prepare_packed_git(the_repository); + prepare_packed_git(r); count = 0; - for (m = get_multi_pack_index(the_repository); m; m = m->next) + for (m = get_multi_pack_index(r); m; m = m->next) count += m->num_objects; - for (p = the_repository->objects->packed_git; p; p = p->next) { + for (p = r->objects->packed_git; p; p = p->next) { if (open_pack_index(p)) continue; count += p->num_objects; } - the_repository->objects->approximate_object_count = count; + r->objects->approximate_object_count = count; } - return the_repository->objects->approximate_object_count; + return r->objects->approximate_object_count; } static void *get_next_packed_git(const void *p) diff --git a/packfile.h b/packfile.h index d70c6d9afb..f04440f984 100644 --- a/packfile.h +++ b/packfile.h @@ -57,7 +57,8 @@ struct packed_git *get_all_packs(struct repository *r); * Give a rough count of objects in the repository. This sacrifices accuracy * for speed. */ -unsigned long approximate_object_count(void); +unsigned long repo_approximate_object_count(struct repository *r); +#define approximate_object_count() repo_approximate_object_count(the_repository) extern struct packed_git *find_sha1_pack(const unsigned char *sha1, struct packed_git *packs); From patchwork Tue Apr 16 09:33:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902435 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 972B2161F for ; Tue, 16 Apr 2019 09:34:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 77D622835B for ; Tue, 16 Apr 2019 09:34:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 695AA2843C; Tue, 16 Apr 2019 09:34:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 158322835B for ; Tue, 16 Apr 2019 09:34:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728957AbfDPJey (ORCPT ); Tue, 16 Apr 2019 05:34:54 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:44405 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726739AbfDPJey (ORCPT ); Tue, 16 Apr 2019 05:34:54 -0400 Received: by mail-pf1-f195.google.com with SMTP id y13so10097519pfm.11 for ; Tue, 16 Apr 2019 02:34:54 -0700 (PDT) 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=264gLtMqjr6EVMDrXmftVG+JmMG00L443ygr4yX9u3A=; b=JZV/QAPzP6BT0ilzvUawjIFZh9EdKX4MkcTsHegqcTzW2sUDKnRrVQUCuK2hInIMyX FD6I1XkgnPdwIine0yI7Rulj7ZnHJDvAAHHa8VGdr1EHdK1DHOA3VbLeAMDUUF8xojHh hZKJY2uaSmvsBhC9OG5BtJcPhJg2PGEUEm+3xUGbXfBlajfaBQrw7UHXQRaLSsQKQX/j s28ycmcx0E3U6Ub0XZCJ2187lycNanmLsu3omz6cJYd3dVkJdBesmwVCQmwJruaJQyVx IW/wfAzZcXnVw2yuNaIwjqazCVp9v1adpQvt6gb4lLmb63h6KclUbQL3e9CLE5FV0SQK 8M2A== 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=264gLtMqjr6EVMDrXmftVG+JmMG00L443ygr4yX9u3A=; b=aD4wGQLupnk9hg4bzCkSWEfEPgO58vzW2d10bnD/GnksMPdImsG303xYsRWaH4CSCw j/hQ64h5JdL5sNNMq+Q4U1iAnI76ownFgn4iGjPVio0s63+E1Xpuu2Oht/AxS5lrpKnf fbkHc0Rlnqrod8cBGrtx0Rsk39KIXe7A3GpZIaQWleJ4WNte2oyZPvwy9WXrD+HPzo+h JDIyxk4K2rtUuZwPafNBR4w9XN4Dsazsbn2g/WOGKY2y2gmx34ydylYEnigWNBkWm7/n zL4KB0LQdWya0O6rYyk+t+t+6/LjTAbiCFYPI0nAj/A5R/io2lYcK6BmVaBhU1TFZcWH hEmw== X-Gm-Message-State: APjAAAW//nDvjgWL93d9yLvxg7VQPQaAQM3lWqCTqaJgxC3WTi8iyPdW 6NU0i91dZGNuBR2yvIPGNWU= X-Google-Smtp-Source: APXvYqzAMwWWgnwoWCsnMc7zEX/lTD90z9jwUxHYcLbWXrBsaOnx+AyqI8xgiZT05IkXXppxHJxnbw== X-Received: by 2002:a62:6c6:: with SMTP id 189mr54078089pfg.36.1555407293937; Tue, 16 Apr 2019 02:34:53 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id s5sm58433482pgv.8.2019.04.16.02.34.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:34:53 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:34:49 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 04/34] refs.c: add refs_ref_exists() Date: Tue, 16 Apr 2019 16:33:11 +0700 Message-Id: <20190416093341.17079-5-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- refs.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/refs.c b/refs.c index 142888a40a..b869f32d8b 100644 --- a/refs.c +++ b/refs.c @@ -241,9 +241,14 @@ int read_ref(const char *refname, struct object_id *oid) return read_ref_full(refname, RESOLVE_REF_READING, oid, NULL); } +static int refs_ref_exists(struct ref_store *refs, const char *refname) +{ + return !!refs_resolve_ref_unsafe(refs, refname, RESOLVE_REF_READING, NULL, NULL); +} + int ref_exists(const char *refname) { - return !!resolve_ref_unsafe(refname, RESOLVE_REF_READING, NULL, NULL); + return refs_ref_exists(get_main_ref_store(the_repository), refname); } static int match_ref_pattern(const char *refname, From patchwork Tue Apr 16 09:33:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902437 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 387461390 for ; Tue, 16 Apr 2019 09:35:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 187AA2835B for ; Tue, 16 Apr 2019 09:35:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0AC5D28562; Tue, 16 Apr 2019 09:35:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 022762835B for ; Tue, 16 Apr 2019 09:35:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728985AbfDPJfC (ORCPT ); Tue, 16 Apr 2019 05:35:02 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:45070 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726739AbfDPJfA (ORCPT ); Tue, 16 Apr 2019 05:35:00 -0400 Received: by mail-pl1-f194.google.com with SMTP id bf11so10032560plb.12 for ; Tue, 16 Apr 2019 02:34:59 -0700 (PDT) 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=2mv49Rcq/CDDyOmGqn8mULKECAHZZNGiCtIArDsvgHk=; b=F6+4T2oKDEEm79Q3UTJ2uRtYvhcwd0vpPAoWA1TbAe4gioBiIx/5fozI+AK3meOgcl om/WRbsVfDTYrH0t1X39BXWeyFYiOajoAEDJClSf0zmtdF/XxN/FhdjQ4Vpnj0L26K36 Xuz8my0P33kFllP/LvAitOa37dhvMQtepMeT0LxsMez/ODW8d9kV96ogdgZDVT+Gu3sK ziuc2yBcFvunP8AqaweWoeHxB0tWudHn7vukSBarTr8EU9f69DYXhS/9ajeqU81IgFO/ tf3xEFkM7rWiikOGHjabXR7clVnAgre8lMK3y4j9sEp5YWXKktKYyZwqeJjiGyrsNeqz T2mQ== 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=2mv49Rcq/CDDyOmGqn8mULKECAHZZNGiCtIArDsvgHk=; b=Srav/zvG7zG3k5fBi8aW8ZpU6ilVva1tcclbIXh1S2zw/SzyuywLdYtsu7GWAU19Yl vSF/Z6u2D7tFLe3961d07kB07Df98xUzclMO1eCIqgRiWA25Ne807X9QqXAtTJpShRYS HZFzFskfSyD+HiVclpUi3a7H5fNbxF/BtBDOK1yyXR9xJi/v7mp83eiVsbJxoprKhD/d FCl9lOOQeAaQDR6faPMpSCmTN8HqGy5lH40BivVLrD9BYCooXN/rSgO8SQRJPdD7s9lb fz8Bvdf4mC4XuqzFtNwK2Rrj+1ELlFwN/qbrJqETINCjibNYwwZZIhu241wpe04eobu7 lelA== X-Gm-Message-State: APjAAAX7D/H7UsexIvhmMPexEq3OpmJs00BJv7GH2NLSEIjosHqzrzjF tSCjnCMp4NWumChWxHjIcfOUJwlU X-Google-Smtp-Source: APXvYqy90WnnuWAXQgJDqI4dVXSohCntRJwWV4BvbwPGIbK9DZPU+a1FJiIWshka7kndfzmKIjiZkw== X-Received: by 2002:a17:902:2a03:: with SMTP id i3mr81608233plb.229.1555407299330; Tue, 16 Apr 2019 02:34:59 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id n82sm84901273pfi.63.2019.04.16.02.34.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:34:58 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:34:54 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 05/34] refs.c: add refs_shorten_unambiguous_ref() Date: Tue, 16 Apr 2019 16:33:12 +0700 Message-Id: <20190416093341.17079-6-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- refs.c | 11 +++++++++-- refs.h | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/refs.c b/refs.c index b869f32d8b..3dde824aab 100644 --- a/refs.c +++ b/refs.c @@ -1169,7 +1169,8 @@ int update_ref(const char *msg, const char *refname, old_oid, flags, onerr); } -char *shorten_unambiguous_ref(const char *refname, int strict) +char *refs_shorten_unambiguous_ref(struct ref_store *refs, + const char *refname, int strict) { int i; static char **scanf_fmts; @@ -1247,7 +1248,7 @@ char *shorten_unambiguous_ref(const char *refname, int strict) strbuf_reset(&resolved_buf); strbuf_addf(&resolved_buf, rule, short_name_len, short_name); - if (ref_exists(resolved_buf.buf)) + if (refs_ref_exists(refs, resolved_buf.buf)) break; } @@ -1266,6 +1267,12 @@ char *shorten_unambiguous_ref(const char *refname, int strict) return xstrdup(refname); } +char *shorten_unambiguous_ref(const char *refname, int strict) +{ + return refs_shorten_unambiguous_ref(get_main_ref_store(the_repository), + refname, strict); +} + static struct string_list *hide_refs; int parse_hide_refs_config(const char *var, const char *value, const char *section) diff --git a/refs.h b/refs.h index 308fa1f03b..5627570241 100644 --- a/refs.h +++ b/refs.h @@ -462,6 +462,8 @@ int check_refname_format(const char *refname, int flags); const char *prettify_refname(const char *refname); +char *refs_shorten_unambiguous_ref(struct ref_store *refs, + const char *refname, int strict); char *shorten_unambiguous_ref(const char *refname, int strict); /** rename ref, return 0 on success **/ From patchwork Tue Apr 16 09:33:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902439 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8824C1823 for ; Tue, 16 Apr 2019 09:35:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6B3532835B for ; Tue, 16 Apr 2019 09:35:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5FC9828562; Tue, 16 Apr 2019 09:35:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EC3D42835B for ; Tue, 16 Apr 2019 09:35:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728992AbfDPJfG (ORCPT ); Tue, 16 Apr 2019 05:35:06 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:42947 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726739AbfDPJfF (ORCPT ); Tue, 16 Apr 2019 05:35:05 -0400 Received: by mail-pf1-f196.google.com with SMTP id w25so10105958pfi.9 for ; Tue, 16 Apr 2019 02:35:04 -0700 (PDT) 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=magUUhhIVcbhT4v4qv0cgjYyTZDlX+JnXRitifxUKUM=; b=u8MZFra4yLqew7dGKOKAjzFx3NqF2oM9rGFnU+1ZqvcBonZTfiUzrlOG/KsbDRCKJk DuU11h7hwsK1f1rVo3q9BsB41itHanSwV3ZTyptn49c/pAxJt3adjI5I87EVo5rD3Ojk Jy+Dm/A0a20P/hxvppW9KKUwCNGBhbWk08iF6bsBbZvyVQMzkPotLo6YVZZdCFsRzGlk mtgblbCjn75oxbwsfQ7Tbjwp/3eMp38VHz8bURjbvplwPSID8z0e6bd0z+VBgPGtoVA6 PLvwBAPMbrK3Um+aAOsYW24P7x3CbZugp9GXxj1GWXi4L1W3fAG3RmWcRsmFM+6Ln8NG XXAg== 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=magUUhhIVcbhT4v4qv0cgjYyTZDlX+JnXRitifxUKUM=; b=p84o69FHdVIi0FU0TfvZHN1o31g4NknnkaHP6SofyhR2KB4ieQhRXdik5C7y0AzreZ LkXePhI1YcvXdsHCpsI8HPlhxejlyrrag7gAdt3hFF/LRpGqdzysthIkUzWuqrZI+05X W+NiqzILvKNOAtwd03iu9lm+hafnDEEQPr53Ow1OPq2BXyUMGf0KJ+KsVya8WInjJ6se e2/DsEGLTykVtuJtzn/gkWJUuHLBf04y79Wbq5UyaXvcIB8vLiNyk4fiP8rjBn2cbc+L +aD0mVPeCwOhgjZZPZ3K5IrnUhiIzLrhtJGZM495HO7fixm1QMLfvpVUJ7aSudQGXGl0 XOfA== X-Gm-Message-State: APjAAAUnhMnIuRO49vHacO5AVHT1HnNZEeTiAVeplFysohu3vxPRdHt5 PiaUQlFhK6IkQwUPJFpa6Mk= X-Google-Smtp-Source: APXvYqwaF2rN72WedDY2f3hvOL0fHPnDkuDBcerGoxdHHtetZYKSLPFLRHPCHuP2dYQYqxNwNAB/+A== X-Received: by 2002:a63:7150:: with SMTP id b16mr72493250pgn.83.1555407304533; Tue, 16 Apr 2019 02:35:04 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id f1sm74760614pgl.35.2019.04.16.02.35.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:35:03 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:34:59 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 06/34] refs.c: remove the_repo from substitute_branch_name() Date: Tue, 16 Apr 2019 16:33:13 +0700 Message-Id: <20190416093341.17079-7-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 8 ++++++-- refs.c | 9 +++++---- sha1-name.c | 8 ++++++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/cache.h b/cache.h index ac92421f3a..fcb24b5781 100644 --- a/cache.h +++ b/cache.h @@ -1468,8 +1468,12 @@ extern int parse_oid_hex(const char *hex, struct object_id *oid, const char **en #define INTERPRET_BRANCH_LOCAL (1<<0) #define INTERPRET_BRANCH_REMOTE (1<<1) #define INTERPRET_BRANCH_HEAD (1<<2) -extern int interpret_branch_name(const char *str, int len, struct strbuf *, - unsigned allowed); +int repo_interpret_branch_name(struct repository *r, + const char *str, int len, + struct strbuf *buf, + unsigned allowed); +#define interpret_branch_name(str, len, buf, allowed) \ + repo_interpret_branch_name(the_repository, str, len, buf, allowed) extern int get_oid_mb(const char *str, struct object_id *oid); extern int validate_headref(const char *ref); diff --git a/refs.c b/refs.c index 3dde824aab..44df049796 100644 --- a/refs.c +++ b/refs.c @@ -539,10 +539,11 @@ void expand_ref_prefix(struct argv_array *prefixes, const char *prefix) * later free()ing) if the string passed in is a magic short-hand form * to name a branch. */ -static char *substitute_branch_name(const char **string, int *len) +static char *substitute_branch_name(struct repository *r, + const char **string, int *len) { struct strbuf buf = STRBUF_INIT; - int ret = interpret_branch_name(*string, *len, &buf, 0); + int ret = repo_interpret_branch_name(r, *string, *len, &buf, 0); if (ret == *len) { size_t size; @@ -556,7 +557,7 @@ static char *substitute_branch_name(const char **string, int *len) int dwim_ref(const char *str, int len, struct object_id *oid, char **ref) { - char *last_branch = substitute_branch_name(&str, &len); + char *last_branch = substitute_branch_name(the_repository, &str, &len); int refs_found = expand_ref(str, len, oid, ref); free(last_branch); return refs_found; @@ -596,7 +597,7 @@ int expand_ref(const char *str, int len, struct object_id *oid, char **ref) int dwim_log(const char *str, int len, struct object_id *oid, char **log) { - char *last_branch = substitute_branch_name(&str, &len); + char *last_branch = substitute_branch_name(the_repository, &str, &len); const char **p; int logs_found = 0; struct strbuf path = STRBUF_INIT; diff --git a/sha1-name.c b/sha1-name.c index 6dda2c16df..d535bb82f7 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1427,13 +1427,17 @@ static int interpret_branch_mark(const char *name, int namelen, return len + at; } -int interpret_branch_name(const char *name, int namelen, struct strbuf *buf, - unsigned allowed) +int repo_interpret_branch_name(struct repository *r, + const char *name, int namelen, + struct strbuf *buf, + unsigned allowed) { char *at; const char *start; int len; + if (r != the_repository) + BUG("interpret_branch_name() does not really use 'r' yet"); if (!namelen) namelen = strlen(name); From patchwork Tue Apr 16 09:33:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902441 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 597A2161F for ; Tue, 16 Apr 2019 09:35:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3853F2881A for ; Tue, 16 Apr 2019 09:35:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 28EA22892C; Tue, 16 Apr 2019 09:35:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BA9672881A for ; Tue, 16 Apr 2019 09:35:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728881AbfDPJfK (ORCPT ); Tue, 16 Apr 2019 05:35:10 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:42954 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJfK (ORCPT ); Tue, 16 Apr 2019 05:35:10 -0400 Received: by mail-pf1-f194.google.com with SMTP id w25so10106078pfi.9 for ; Tue, 16 Apr 2019 02:35:09 -0700 (PDT) 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=po4WJV6YsjA9gi2cq/NqMMFAA2vXJSzk6sJVMo3WaSQ=; b=Ag69nNpKBUzwjGecuRFW9mHv94+7x//F/VF1H/tiarUq+kcRRhbQwzSxUWr5DZZler Xxidjfr+SMzv8eAD0YsYmI5j7hSlFRCXPA04e2Jcl41khAo7aVIbMqPIzzGEEd24UMCL VtQdcHbqq9suVv7Rtb11UA5eSYbLK9bZl+x5rVGja2DHwzrAg8R88RB96tkz023XSFjd nKpO+wNy52X4068qqulJIq49L2nMRMHM66xR+SHozyvnvoOjdowgIg1XISMlspXtkBhP gg6qi5EhEV4yED8efLKNd4OcJmF5+Nue0dHX+dPgfiG3zfDaarN0LnJo648kRmmuLWu+ i1RA== 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=po4WJV6YsjA9gi2cq/NqMMFAA2vXJSzk6sJVMo3WaSQ=; b=ELvb9hN0iD//EMuzRxiQFqDKGpFICz7Ra0YLUlSk8gyK3jWh0sZ4eKVb3g+kPU7IF5 zqxpJtYsVWKkzr3HypGD78rZQTG6aEmPBOM4uqO3gnJ/Q5B98maXLwB7mH6Ebfd1o/Jg ZS3q2724hQ6uTSfcupBWLJmvVXA/mmgEcHVA2uQxirSPCxVB1W2jaFVH44+uBlKfH9Wj 9edZLXq1nFjKtNZIcKdfQbKs0XUXkE/xu002aM5BDXOcPf7GvcTPKAK+HjeK8lXeSE4h fWyQfCy1RsjLp/ndgWlElxvaZqyeS8YWAqZkiJY4XLaLKDdA5PH1KfBPRPxIj20rYgiz 8PpA== X-Gm-Message-State: APjAAAVXNcXLiBj0x6xOkBGppnNuqQG5eK2/RrcghVHklh+7+xe7/Ns8 1/F5WQCAn/nWQ+bc+ktaY1M= X-Google-Smtp-Source: APXvYqzSJJ7O1LoXL5/Yohd80XPjeqWyLloXrEhIWIJ8L/1mq7OUUH72MT2nqhefkb1OcNgO1YycKQ== X-Received: by 2002:a63:5b0a:: with SMTP id p10mr76098849pgb.282.1555407309683; Tue, 16 Apr 2019 02:35:09 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id 10sm68404795pfh.14.2019.04.16.02.35.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:35:09 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:35:04 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 07/34] refs.c: remove the_repo from expand_ref() Date: Tue, 16 Apr 2019 16:33:14 +0700 Message-Id: <20190416093341.17079-8-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- refs.c | 10 ++++++---- refs.h | 2 +- upload-pack.c | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/refs.c b/refs.c index 44df049796..1f5864aa36 100644 --- a/refs.c +++ b/refs.c @@ -558,12 +558,13 @@ static char *substitute_branch_name(struct repository *r, int dwim_ref(const char *str, int len, struct object_id *oid, char **ref) { char *last_branch = substitute_branch_name(the_repository, &str, &len); - int refs_found = expand_ref(str, len, oid, ref); + int refs_found = expand_ref(the_repository, str, len, oid, ref); free(last_branch); return refs_found; } -int expand_ref(const char *str, int len, struct object_id *oid, char **ref) +int expand_ref(struct repository *repo, const char *str, int len, + struct object_id *oid, char **ref) { const char **p, *r; int refs_found = 0; @@ -578,8 +579,9 @@ int expand_ref(const char *str, int len, struct object_id *oid, char **ref) this_result = refs_found ? &oid_from_ref : oid; strbuf_reset(&fullref); strbuf_addf(&fullref, *p, len, str); - r = resolve_ref_unsafe(fullref.buf, RESOLVE_REF_READING, - this_result, &flag); + r = refs_resolve_ref_unsafe(get_main_ref_store(repo), + fullref.buf, RESOLVE_REF_READING, + this_result, &flag); if (r) { if (!refs_found++) *ref = xstrdup(r); diff --git a/refs.h b/refs.h index 5627570241..b630d5bde7 100644 --- a/refs.h +++ b/refs.h @@ -148,7 +148,7 @@ int refname_match(const char *abbrev_name, const char *full_name); struct argv_array; void expand_ref_prefix(struct argv_array *prefixes, const char *prefix); -int expand_ref(const char *str, int len, struct object_id *oid, char **ref); +int expand_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); int dwim_ref(const char *str, int len, struct object_id *oid, char **ref); int dwim_log(const char *str, int len, struct object_id *oid, char **ref); diff --git a/upload-pack.c b/upload-pack.c index d098ef5982..56505d60c3 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -834,7 +834,7 @@ static int process_deepen_not(const char *line, struct string_list *deepen_not, if (skip_prefix(line, "deepen-not ", &arg)) { char *ref = NULL; struct object_id oid; - if (expand_ref(arg, strlen(arg), &oid, &ref) != 1) + if (expand_ref(the_repository, arg, strlen(arg), &oid, &ref) != 1) die("git upload-pack: ambiguous deepen-not: %s", line); string_list_append(deepen_not, ref); free(ref); From patchwork Tue Apr 16 09:33:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902443 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 64D48161F for ; Tue, 16 Apr 2019 09:35:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4BEDB2835B for ; Tue, 16 Apr 2019 09:35:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 407222892B; Tue, 16 Apr 2019 09:35:17 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E0DAD2835B for ; Tue, 16 Apr 2019 09:35:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728987AbfDPJfP (ORCPT ); Tue, 16 Apr 2019 05:35:15 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:46854 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJfP (ORCPT ); Tue, 16 Apr 2019 05:35:15 -0400 Received: by mail-pf1-f196.google.com with SMTP id 9so10088239pfj.13 for ; Tue, 16 Apr 2019 02:35:15 -0700 (PDT) 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=d0KSxw1KtPpsseqHTdVQUBkaWA4zNa42hKXoI5rmvNw=; b=rE88KEUgHQYOdVpmPwllV2jNexR1qP63LqbbColGd6ZXqvrTiUHIRYKXy35Pi6vvFX B0vsuY9Fi+TusZ0RzvkySnrTwLNaIpd1CyWLSHJfP4QoWkn9OoDMFqkNG3jlWnxAWJFW hOOYnzulsGL5GWJUtqrXHZ5F3dYzGirnz6TZEBre3ihOLXuXb6xiVYe4ZCot8EKXWL8h kaLIb2ykGl9cqvQPMsxZfXrnWxUSQG2D2qcV0TaGxVg6hrhSca3xzLPg5nWrWEHEurwW YF7oBG6z+H0AV4g5UEpFt3eEGfU5pJXjZC1Yj/q76kIqmust/QPK4RiM47jjUIK+x7cO +oNQ== 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=d0KSxw1KtPpsseqHTdVQUBkaWA4zNa42hKXoI5rmvNw=; b=rwHY6lO5FeX1oefrYvOWelU498NcoQN5qkg1DSS0SLswwsLxbuCWM1VjgPSb1KOPfK +xYQ1swGPyulN7LIXPH8bpjATqgo0sqtnEWJRsq6n/89PoeEnYyHwg9ztMyiq3ABHH1e Kdss3NEeercXIr2I2WLcCiKt/72IRnc6TeYX2J6I8WgQj1Nv+Md7rPNgX1sgpSTYXQ4u HwwAwqhqf53wD3O7FZ3/gtMi4SKpuhGwaJGfakGyVMWyBcDIPMo/HCSVB0aWZsB0od8k f2HCtl4KMdJLlGs3tmC4kB+kw/trtRaQYKQoBTTSySizZMsaZFHb7+qBDH8Y0Wt6ixhs fgqg== X-Gm-Message-State: APjAAAV+sYPzYxTbx2rGxthWKgFW8iORXutxcSFtrIm2GtAZ8RRJ0CHl lHlRPln3vN+WonFenz93QhM= X-Google-Smtp-Source: APXvYqw6BMRUiQwhIU0o0eMO+FPXmhsAaNwxVS0Sn+0PBPIQx8LFdo4alqAUu3dfBHnRQgPiNQR98g== X-Received: by 2002:a62:1194:: with SMTP id 20mr670010pfr.224.1555407314945; Tue, 16 Apr 2019 02:35:14 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id l74sm91345262pfi.174.2019.04.16.02.35.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:35:14 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:35:09 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 08/34] refs.c: add repo_dwim_ref() Date: Tue, 16 Apr 2019 16:33:15 +0700 Message-Id: <20190416093341.17079-9-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- refs.c | 12 +++++++++--- refs.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/refs.c b/refs.c index 1f5864aa36..bd0fec5776 100644 --- a/refs.c +++ b/refs.c @@ -555,14 +555,20 @@ static char *substitute_branch_name(struct repository *r, return NULL; } -int dwim_ref(const char *str, int len, struct object_id *oid, char **ref) +int repo_dwim_ref(struct repository *r, const char *str, int len, + struct object_id *oid, char **ref) { - char *last_branch = substitute_branch_name(the_repository, &str, &len); - int refs_found = expand_ref(the_repository, str, len, oid, ref); + char *last_branch = substitute_branch_name(r, &str, &len); + int refs_found = expand_ref(r, str, len, oid, ref); free(last_branch); return refs_found; } +int dwim_ref(const char *str, int len, struct object_id *oid, char **ref) +{ + return repo_dwim_ref(the_repository, str, len, oid, ref); +} + int expand_ref(struct repository *repo, const char *str, int len, struct object_id *oid, char **ref) { diff --git a/refs.h b/refs.h index b630d5bde7..fd3dc1d0f4 100644 --- a/refs.h +++ b/refs.h @@ -149,6 +149,7 @@ struct argv_array; void expand_ref_prefix(struct argv_array *prefixes, const char *prefix); int expand_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); +int repo_dwim_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); int dwim_ref(const char *str, int len, struct object_id *oid, char **ref); int dwim_log(const char *str, int len, struct object_id *oid, char **ref); From patchwork Tue Apr 16 09:33:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902445 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8CA451390 for ; Tue, 16 Apr 2019 09:35:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 737852881A for ; Tue, 16 Apr 2019 09:35:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 67E302892C; Tue, 16 Apr 2019 09:35:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 094BD2881A for ; Tue, 16 Apr 2019 09:35:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728771AbfDPJfU (ORCPT ); Tue, 16 Apr 2019 05:35:20 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:44447 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJfU (ORCPT ); Tue, 16 Apr 2019 05:35:20 -0400 Received: by mail-pf1-f195.google.com with SMTP id y13so10098098pfm.11 for ; Tue, 16 Apr 2019 02:35:20 -0700 (PDT) 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=xG1/wqpzevuEv29717i9z54Yu6dpcnCl16aCmBzObCI=; b=YYpaUsnnDphZGeH7jIYy4fYhp2R/2DxUxT9EFN8A2/2vvNmtgjYuWg+vX42t5XbgjD ODHHuoD1e7v3Rmr+FemJAB6tJaCz3aSTCrDm5Apg/k1kVx3VnCQws//FN/xSvLsZGwvg 6HF+AndUqiXKUnXRylpgoz/HWxOgjvvrxqXcz7+oyXnYDYmPrN7VUperErKSKQQGOS89 Xv7Pm8zfA7tTKejpsVLlLEL4p/pdKZXt9Izwqz3lEIUfvcSkCrWEns+I7v9whs9pJS7l TI1obCkkcCHfZOjbK212o8GtA6nD39gHti2MKgZvYsuFfSBjivnebY5voFRscx5ZL4Yh 8ufw== 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=xG1/wqpzevuEv29717i9z54Yu6dpcnCl16aCmBzObCI=; b=sUM05xXV128kH5hOP62APmEsndbnoJ8FxnIWdiMKfPrmzHxZHl6xvwYBu3M/q073Wt rh/bTW/BjcM0RU0kcl+C59fwxCMRoc9oNi1JDdivFOo+Vq4YcxPWFyYAf50+2b02dqv1 66RMIBl4qaWT6cENu4mvxGtKUPgwzM/EERZK3AmWTyYd2vuXavFUKXsDP5qd7LZKrp4y 3DnefkyOfm5fpNQg/kZqlKLbkSQ/egiWqGnGaTdMkuX7/O2pECkzaL6ii5n75pcBY1us 0dN14ZY8VJM6hYBtnlHaZEaB5W3sm2TEY2EXlaSydcGtJcrc7ejj8Pm1q38LbR0f6No2 2igA== X-Gm-Message-State: APjAAAWdGrIkU9fRHqvBLdM+ifKO0Jm1sQVGd76/7N+RzhEouiAOAPnt aJDyQABim7dIHyg4VAOkKgEZNTE/ X-Google-Smtp-Source: APXvYqz8kZS1cZfYI4ilRtu5aZRonNMAkf2qplazzbVB77KDnToyuhBbXLxy+qH6PVoIVKo+YbuIEQ== X-Received: by 2002:a63:84c7:: with SMTP id k190mr74100887pgd.255.1555407320038; Tue, 16 Apr 2019 02:35:20 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id e4sm74084042pgd.32.2019.04.16.02.35.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:35:19 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:35:15 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 09/34] refs.c: add repo_dwim_log() Date: Tue, 16 Apr 2019 16:33:16 +0700 Message-Id: <20190416093341.17079-10-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- refs.c | 21 +++++++++++++++------ refs.h | 1 + 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/refs.c b/refs.c index bd0fec5776..edea001446 100644 --- a/refs.c +++ b/refs.c @@ -603,9 +603,11 @@ int expand_ref(struct repository *repo, const char *str, int len, return refs_found; } -int dwim_log(const char *str, int len, struct object_id *oid, char **log) +int repo_dwim_log(struct repository *r, const char *str, int len, + struct object_id *oid, char **log) { - char *last_branch = substitute_branch_name(the_repository, &str, &len); + struct ref_store *refs = get_main_ref_store(r); + char *last_branch = substitute_branch_name(r, &str, &len); const char **p; int logs_found = 0; struct strbuf path = STRBUF_INIT; @@ -617,13 +619,15 @@ int dwim_log(const char *str, int len, struct object_id *oid, char **log) strbuf_reset(&path); strbuf_addf(&path, *p, len, str); - ref = resolve_ref_unsafe(path.buf, RESOLVE_REF_READING, - &hash, NULL); + ref = refs_resolve_ref_unsafe(refs, path.buf, + RESOLVE_REF_READING, + &hash, NULL); if (!ref) continue; - if (reflog_exists(path.buf)) + if (refs_reflog_exists(refs, path.buf)) it = path.buf; - else if (strcmp(ref, path.buf) && reflog_exists(ref)) + else if (strcmp(ref, path.buf) && + refs_reflog_exists(refs, ref)) it = ref; else continue; @@ -639,6 +643,11 @@ int dwim_log(const char *str, int len, struct object_id *oid, char **log) return logs_found; } +int dwim_log(const char *str, int len, struct object_id *oid, char **log) +{ + return repo_dwim_log(the_repository, str, len, oid, log); +} + static int is_per_worktree_ref(const char *refname) { return !strcmp(refname, "HEAD") || diff --git a/refs.h b/refs.h index fd3dc1d0f4..859dffe691 100644 --- a/refs.h +++ b/refs.h @@ -150,6 +150,7 @@ void expand_ref_prefix(struct argv_array *prefixes, const char *prefix); int expand_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); int repo_dwim_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); +int repo_dwim_log(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); int dwim_ref(const char *str, int len, struct object_id *oid, char **ref); int dwim_log(const char *str, int len, struct object_id *oid, char **ref); From patchwork Tue Apr 16 09:33:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902447 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D31291390 for ; Tue, 16 Apr 2019 09:35:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B6DF72835B for ; Tue, 16 Apr 2019 09:35:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AB6CE2892C; Tue, 16 Apr 2019 09:35:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 43A0D2835B for ; Tue, 16 Apr 2019 09:35:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728923AbfDPJf0 (ORCPT ); Tue, 16 Apr 2019 05:35:26 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:46841 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJfZ (ORCPT ); Tue, 16 Apr 2019 05:35:25 -0400 Received: by mail-pl1-f193.google.com with SMTP id y6so10030196pll.13 for ; Tue, 16 Apr 2019 02:35:25 -0700 (PDT) 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=RdT4xFz+irPOEmQPKlD6f536lXBUMNQ6Vo6NmwoQVSw=; b=bCpjl03gaTR/s6UMB3VVoboMse3C5nhsx0HkPOTGn89dM7Rel8GRPcnWw6psnTmgAA xflNxxXU5G64grqWgPIIibtC4rnajetKn02R0HXIYD97pG56zC4m3PsrPTwkae5/It8o seO/lDueFJ0ZjOJkiZWMvvpd3IEGd6tGgXQm6rMYrSO4ZxTy/zllAaWgTUDMEv9yg9Dh gRbJTk2s3Oj9phqL95BmiDV3cvD5S1/wcn6fGI/06fdXomDrHXRBBVXGGxBXDHXTKe2b GBlYYO84Vg5PiZXAFTUjaRoHG5p0mbQqFsuwCNlxFx7kyVoveqsX5JYXKdIcswjPEJZB rNsw== 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=RdT4xFz+irPOEmQPKlD6f536lXBUMNQ6Vo6NmwoQVSw=; b=o2fPEUYzeWHAadz7x/F4ERhSPbLGJ7H6rz15HgoWa2qhw2nC3Fs3AVdHoQh7xWOFno c1euOaujLhOOO6IjtIYFs5yv+tUK/4I1WRNg8b6d1m7466nNdR+A3HsYNgdcNe57PyGd diSO7Te0XcI2mEMdIqqfl8DCfQjuH81dI3VhTF2jsVeZgJh9KvVNaiNflQBF3Rwcmc/P w0XFiFPYmw0/fmI6oHJv1O++uk/M4O2F0Yp0juOT+v8bn+uks/18dBAjBGPtxZ9g/kG5 XhoAl9u3fzIunXk/PfahsQnQkwpvmg9rpdl7m9vfj6nPjqY+ENkARjIfodfWa9s/Fkqw eP7Q== X-Gm-Message-State: APjAAAWshyewfAV71V7NuCWjKeA9ddel/xH4ZdQDB6GV/RSWrcjoo/7Q PXD8cbQs7g/N0axgbXiUmPs= X-Google-Smtp-Source: APXvYqw+FAI2iQX1Pfc6gUZUbR1BJR+yE7Agoy4/Us9qHRvl1C1Iz6jRZL7x/cOi9nMTDnn3Hjc2oA== X-Received: by 2002:a17:902:6b0b:: with SMTP id o11mr16423236plk.266.1555407325185; Tue, 16 Apr 2019 02:35:25 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id f7sm86557702pga.56.2019.04.16.02.35.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:35:24 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:35:20 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 10/34] refs.c: remove the_repo from read_ref_at() Date: Tue, 16 Apr 2019 16:33:17 +0700 Message-Id: <20190416093341.17079-11-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- builtin/show-branch.c | 6 ++++-- refs.c | 7 ++++--- refs.h | 3 ++- sha1-name.c | 3 ++- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/builtin/show-branch.c b/builtin/show-branch.c index 934e514944..082daeac32 100644 --- a/builtin/show-branch.c +++ b/builtin/show-branch.c @@ -753,7 +753,8 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) /* Ah, that is a date spec... */ timestamp_t at; at = approxidate(reflog_base); - read_ref_at(ref, flags, at, -1, &oid, NULL, + read_ref_at(get_main_ref_store(the_repository), + ref, flags, at, -1, &oid, NULL, NULL, NULL, &base); } } @@ -765,7 +766,8 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) timestamp_t timestamp; int tz; - if (read_ref_at(ref, flags, 0, base + i, &oid, &logmsg, + if (read_ref_at(get_main_ref_store(the_repository), + ref, flags, 0, base + i, &oid, &logmsg, ×tamp, &tz, NULL)) { reflog = i; break; diff --git a/refs.c b/refs.c index edea001446..92d1f6dbdd 100644 --- a/refs.c +++ b/refs.c @@ -967,7 +967,8 @@ static int read_ref_at_ent_oldest(struct object_id *ooid, struct object_id *noid return 1; } -int read_ref_at(const char *refname, unsigned int flags, timestamp_t at_time, int cnt, +int read_ref_at(struct ref_store *refs, const char *refname, + unsigned int flags, timestamp_t at_time, int cnt, struct object_id *oid, char **msg, timestamp_t *cutoff_time, int *cutoff_tz, int *cutoff_cnt) { @@ -983,7 +984,7 @@ int read_ref_at(const char *refname, unsigned int flags, timestamp_t at_time, in cb.cutoff_cnt = cutoff_cnt; cb.oid = oid; - for_each_reflog_ent_reverse(refname, read_ref_at_ent, &cb); + refs_for_each_reflog_ent_reverse(refs, refname, read_ref_at_ent, &cb); if (!cb.reccnt) { if (flags & GET_OID_QUIETLY) @@ -994,7 +995,7 @@ int read_ref_at(const char *refname, unsigned int flags, timestamp_t at_time, in if (cb.found_it) return 0; - for_each_reflog_ent(refname, read_ref_at_ent_oldest, &cb); + refs_for_each_reflog_ent(refs, refname, read_ref_at_ent_oldest, &cb); return 1; } diff --git a/refs.h b/refs.h index 859dffe691..8f9cbf8a93 100644 --- a/refs.h +++ b/refs.h @@ -388,7 +388,8 @@ int refs_create_reflog(struct ref_store *refs, const char *refname, int safe_create_reflog(const char *refname, int force_create, struct strbuf *err); /** Reads log for the value of ref during at_time. **/ -int read_ref_at(const char *refname, unsigned int flags, +int read_ref_at(struct ref_store *refs, + const char *refname, unsigned int flags, timestamp_t at_time, int cnt, struct object_id *oid, char **msg, timestamp_t *cutoff_time, int *cutoff_tz, int *cutoff_cnt); diff --git a/sha1-name.c b/sha1-name.c index d535bb82f7..15a1107998 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -849,7 +849,8 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, return -1; } } - if (read_ref_at(real_ref, flags, at_time, nth, oid, NULL, + if (read_ref_at(get_main_ref_store(the_repository), + real_ref, flags, at_time, nth, oid, NULL, &co_time, &co_tz, &co_cnt)) { if (!len) { if (starts_with(real_ref, "refs/heads/")) { From patchwork Tue Apr 16 09:33:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902449 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 628231390 for ; Tue, 16 Apr 2019 09:35:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4788A2835B for ; Tue, 16 Apr 2019 09:35:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3C26D2892B; Tue, 16 Apr 2019 09:35:33 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A810E2835B for ; Tue, 16 Apr 2019 09:35:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728995AbfDPJfb (ORCPT ); Tue, 16 Apr 2019 05:35:31 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:38095 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJfb (ORCPT ); Tue, 16 Apr 2019 05:35:31 -0400 Received: by mail-pl1-f194.google.com with SMTP id f36so10056617plb.5 for ; Tue, 16 Apr 2019 02:35:30 -0700 (PDT) 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=X0aQ1uRl1ylWR1LoSCegbTCrprkOD9xY2bCL4Qv1Y6s=; b=kjv/IrJCcvETb9rDqxPINhQ7R/aSBFqBdaFDYaTfTGexo2/h6I4Smkb455sl1ekOgW XaFKyaq/o9onUP21ECtFbQ0RiP5mgpauzfaYANOxtOHqUCKnfjhf72MpDQQTlvN4zRjA lvSjYkbHymEJLxvKx5mycU5hSQjCoype9sFVtLx1V77JMZQFq6TaL8gqDIyxPM0GKFql undmLF9EyV6k61gQUN7/pPmYEZhlmHi3qaXbIFHWVj7J9ge3wDisZJe768u9RMTsM7UG ZxDY1BDj11to9r72byY92hpta1wrmKlxB8xGix+KOY9fuhxGXkLBJWaaMdfaSE3PDHMY XBxg== 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=X0aQ1uRl1ylWR1LoSCegbTCrprkOD9xY2bCL4Qv1Y6s=; b=kDPdWsk5C/LUFS1jB3R4SNtCxBeVbkDFBa7Z8LMcOmIpqQFz/ds1xytBpsfPMGMCXO k6bOhPZrrx3jnt9vedTI4LrTCzHqvFkZVw7T/QhO3twYIEmMhIMb5Aartuo9DGjFE25K G2JHtVPcc3rNlYxobvOVoaqgBskNpn7p+mufqErjldUpuWWfwiyjvqbYYRqIjLYzB/Ga 7RaZcjxAhUH3poNS4hGafxm3lOM5JJKlY0YME4Arn1okQpAXVPSuxkDbpSShedtW6R7z iBEsNGGsSNgwgMUskbRCGBeA5d9hTjrJ+YVLtKhsgxpON1OuRnH/tbmsACRNjU1M2MtD E6sg== X-Gm-Message-State: APjAAAWpBT5nKfDE+3MLh6JH2IZIujg+r7dEISUFwr6y0eiL1JnY+YxA 2FiVT/r6vweLrYoHpAGLjLU= X-Google-Smtp-Source: APXvYqyG/XOfPvwwW2XE79KLc9WduUzMHLTkuEPo8yGCBsu4ePAfWVZV+I6wbXiNzyN4Ea6je1adtQ== X-Received: by 2002:a17:902:7785:: with SMTP id o5mr81482051pll.33.1555407330625; Tue, 16 Apr 2019 02:35:30 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id t21sm36399661pfe.22.2019.04.16.02.35.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:35:30 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:35:25 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 11/34] commit.cocci: refactor code, avoid double rewrite Date: Tue, 16 Apr 2019 16:33:18 +0700 Message-Id: <20190416093341.17079-12-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP "maybe" pointer in 'struct commit' is tricky because it can be lazily initialized to take advantage of commit-graph if available. This makes it not safe to access directly. This leads to a rule in commit.cocci to rewrite 'x->maybe_tree' to 'get_commit_tree(x)'. But that rule alone could lead to incorrectly rewrite assignments, e.g. from x->maybe_tree = yes to get_commit_tree(x) = yes Because of this we have a second rule to revert this effect. Szeder found out that we could do better by performing the assignment rewrite rule first, then the remaining is read-only access and handled by the current first rule. For this to work, we need to transform "x->maybe_tree = y" to something that does NOT contain "x->maybe_tree" to avoid the original first rule. This is where set_commit_tree() comes in. Helped-by: SZEDER Gábor Helped-by: Johannes Schindelin Signed-off-by: Nguyễn Thái Ngọc Duy --- commit-graph.c | 9 +++++++-- commit.c | 9 +++++++-- contrib/coccinelle/commit.cocci | 20 +++++++++++++------- merge-recursive.c | 7 ++++++- 4 files changed, 33 insertions(+), 12 deletions(-) diff --git a/commit-graph.c b/commit-graph.c index 47e9be0a3a..155a270457 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -343,6 +343,11 @@ static void fill_commit_graph_info(struct commit *item, struct commit_graph *g, item->generation = get_be32(commit_data + g->hash_len + 8) >> 2; } +static inline void set_commit_tree(struct commit *c, struct tree *t) +{ + c->maybe_tree = t; +} + static int fill_commit_in_graph(struct repository *r, struct commit *item, struct commit_graph *g, uint32_t pos) @@ -356,7 +361,7 @@ static int fill_commit_in_graph(struct repository *r, item->object.parsed = 1; item->graph_pos = pos; - item->maybe_tree = NULL; + set_commit_tree(item, NULL); date_high = get_be32(commit_data + g->hash_len + 8) & 0x3; date_low = get_be32(commit_data + g->hash_len + 12); @@ -442,7 +447,7 @@ static struct tree *load_tree_for_commit(struct repository *r, GRAPH_DATA_WIDTH * (c->graph_pos); hashcpy(oid.hash, commit_data); - c->maybe_tree = lookup_tree(r, &oid); + set_commit_tree(c, lookup_tree(r, &oid)); return c->maybe_tree; } diff --git a/commit.c b/commit.c index a5333c7ac6..043ba64f17 100644 --- a/commit.c +++ b/commit.c @@ -340,6 +340,11 @@ void free_commit_buffer(struct parsed_object_pool *pool, struct commit *commit) } } +static inline void set_commit_tree(struct commit *c, struct tree *t) +{ + c->maybe_tree = t; +} + struct tree *get_commit_tree(const struct commit *commit) { if (commit->maybe_tree || !commit->object.parsed) @@ -358,7 +363,7 @@ struct object_id *get_commit_tree_oid(const struct commit *commit) void release_commit_memory(struct parsed_object_pool *pool, struct commit *c) { - c->maybe_tree = NULL; + set_commit_tree(c, NULL); c->index = 0; free_commit_buffer(pool, c); free_commit_list(c->parents); @@ -406,7 +411,7 @@ int parse_commit_buffer(struct repository *r, struct commit *item, const void *b if (get_oid_hex(bufptr + 5, &parent) < 0) return error("bad tree pointer in commit %s", oid_to_hex(&item->object.oid)); - item->maybe_tree = lookup_tree(r, &parent); + set_commit_tree(item, lookup_tree(r, &parent)); bufptr += tree_entry_len + 1; /* "tree " + "hex sha1" + "\n" */ pptr = &item->parents; diff --git a/contrib/coccinelle/commit.cocci b/contrib/coccinelle/commit.cocci index c49aa558f0..663658a127 100644 --- a/contrib/coccinelle/commit.cocci +++ b/contrib/coccinelle/commit.cocci @@ -10,19 +10,25 @@ expression c; - c->maybe_tree->object.oid.hash + get_commit_tree_oid(c)->hash -// These excluded functions must access c->maybe_tree direcly. @@ -identifier f !~ "^(get_commit_tree|get_commit_tree_in_graph_one|load_tree_for_commit)$"; +identifier f !~ "^set_commit_tree$"; expression c; +expression s; @@ f(...) {<... -- c->maybe_tree -+ get_commit_tree(c) +- c->maybe_tree = s ++ set_commit_tree(c, s) ...>} +// These excluded functions must access c->maybe_tree direcly. +// Note that if c->maybe_tree is written somewhere outside of these +// functions, then the recommended transformation will be bogus with +// get_commit_tree() on the LHS. @@ +identifier f !~ "^(get_commit_tree|get_commit_tree_in_graph_one|load_tree_for_commit|set_commit_tree)$"; expression c; -expression s; @@ -- get_commit_tree(c) = s -+ c->maybe_tree = s + f(...) {<... +- c->maybe_tree ++ get_commit_tree(c) + ...>} diff --git a/merge-recursive.c b/merge-recursive.c index 6c40c61c47..ca4731a719 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -163,6 +163,11 @@ static struct tree *shift_tree_object(struct repository *repo, return lookup_tree(repo, &shifted); } +static inline void set_commit_tree(struct commit *c, struct tree *t) +{ + c->maybe_tree = t; +} + static struct commit *make_virtual_commit(struct repository *repo, struct tree *tree, const char *comment) @@ -170,7 +175,7 @@ static struct commit *make_virtual_commit(struct repository *repo, struct commit *commit = alloc_commit_node(repo); set_merge_remote_desc(commit, comment, (struct object *)commit); - commit->maybe_tree = tree; + set_commit_tree(commit, tree); commit->object.parsed = 1; return commit; } From patchwork Tue Apr 16 09:33:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902451 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D17331390 for ; Tue, 16 Apr 2019 09:35:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B2BCA2881A for ; Tue, 16 Apr 2019 09:35:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A74652835B; Tue, 16 Apr 2019 09:35:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 350102835B for ; Tue, 16 Apr 2019 09:35:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728833AbfDPJfj (ORCPT ); Tue, 16 Apr 2019 05:35:39 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:43000 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJfi (ORCPT ); Tue, 16 Apr 2019 05:35:38 -0400 Received: by mail-pf1-f196.google.com with SMTP id w25so10106668pfi.9 for ; Tue, 16 Apr 2019 02:35:38 -0700 (PDT) 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=mm2P/jdEd+vOH5XoEutnNPln3XNCzup272on/Vw8dvA=; b=g5F3flcx/pzHgXquADik8J8yJrD7U0SVq0qrE5WjUPm5J8ejBB88l+zAh6JDAdVeTZ O3pAPZ/rP8JdrC3edTzeoVkVnOb4UQfD1XfeuBj/j5oBvnF2rKBBbSHUT7axop0v66eH czzpxP4TgpbTZMn41vSBQTO5fE1Cze+ak8zsQw2tMk26Bbp2VFHZlRLnvNLLR09Doff5 yibCidP8SEh2DX3EEaLNx5y51igqHteMrz6hsM/r+1dY7jFSWpCul81Xy4iDmKztwl5A 4gD/Ht+A/Tvp83zDgjxT8M9yNeU4P4EQbFjxwyo4YtN9KutepykePS6KocI74mMWq75p SMIQ== 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=mm2P/jdEd+vOH5XoEutnNPln3XNCzup272on/Vw8dvA=; b=nj8g1/6gYTA1T8hbRM7bpboRhRZ6BYQ17b7GLYQX0y9uukKU7aBToegJQYCxb11iPw HmryKx768EJ3xLoDVKm+m8wnEfxw7TPrLL5/8cVKfK+QZmFuFUbKae2zO1GIoO9Xpk0w dDeLe6+DH/E4/5NneNHQxh9GnCs58Bl1Jch3LUWrR1FS9Aa7IRDal1dmFZpyjNTjA8z9 gWZpJZ5VNUVTaSH7Xv680PFjmbg88CSuL3nqxhP0esYlmz48YuVvaEb/x60Pv4/lXgRn u2/4E1Tw1JgukOu5g83MdF+i3rQGSPM4crHIVVWEZA2cqLCOWwPoL6RSZDjbCVTWMVCa XXnw== X-Gm-Message-State: APjAAAX28xHvda7ZjEOWK0NWTmBw1PzDHLvUhtRfw5ESJgvJvqM29pHQ gQqWaI+MKh1jtpmSeDli2XU= X-Google-Smtp-Source: APXvYqyPSqWJhApp2Fk2pqCJ6LWs5TdNZSGWWHsF/fNwfbu3zf2D8QRSWhtcIjA0VNOJN+t+XpClHg== X-Received: by 2002:a65:6284:: with SMTP id f4mr75892528pgv.11.1555407338263; Tue, 16 Apr 2019 02:35:38 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id h19sm91532553pfd.130.2019.04.16.02.35.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:35:35 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:35:30 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 12/34] commit.c: add repo_get_commit_tree() Date: Tue, 16 Apr 2019 16:33:19 +0700 Message-Id: <20190416093341.17079-13-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Remove the implicit dependency on the_repository in this function. It will be used in sha1-name.c functions when they are updated to take any 'struct repository'. get_commit_tree() remains as a compat wrapper, to be slowly replaced later. Any access to "maybe_tree" field directly will result in _broken_ code after running through commit.cocci because we can't know what is the right repository to use. the_repository would be correct most of the time. But we're relying less and less on the_repository and that assumption may no longer be true. The transformation now is more of a poor man replacement for a C++ compiler catching access to private fields. Signed-off-by: Nguyễn Thái Ngọc Duy --- commit.c | 5 +++-- commit.h | 5 +++-- contrib/coccinelle/commit.cocci | 6 +++--- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/commit.c b/commit.c index 043ba64f17..a9e74647dc 100644 --- a/commit.c +++ b/commit.c @@ -345,7 +345,8 @@ static inline void set_commit_tree(struct commit *c, struct tree *t) c->maybe_tree = t; } -struct tree *get_commit_tree(const struct commit *commit) +struct tree *repo_get_commit_tree(struct repository *r, + const struct commit *commit) { if (commit->maybe_tree || !commit->object.parsed) return commit->maybe_tree; @@ -353,7 +354,7 @@ struct tree *get_commit_tree(const struct commit *commit) if (commit->graph_pos == COMMIT_NOT_FROM_GRAPH) BUG("commit has NULL tree, but was not loaded from commit-graph"); - return get_commit_tree_in_graph(the_repository, commit); + return get_commit_tree_in_graph(r, commit); } struct object_id *get_commit_tree_oid(const struct commit *commit) diff --git a/commit.h b/commit.h index 42728c2906..f1aa4c0472 100644 --- a/commit.h +++ b/commit.h @@ -32,7 +32,7 @@ struct commit { /* * If the commit is loaded from the commit-graph file, then this - * member may be NULL. Only access it through get_commit_tree() + * member may be NULL. Only access it through repo_get_commit_tree() * or get_commit_tree_oid(). */ struct tree *maybe_tree; @@ -143,7 +143,8 @@ void repo_unuse_commit_buffer(struct repository *r, */ void free_commit_buffer(struct parsed_object_pool *pool, struct commit *); -struct tree *get_commit_tree(const struct commit *); +struct tree *repo_get_commit_tree(struct repository *, const struct commit *); +#define get_commit_tree(c) repo_get_commit_tree(the_repository, c) struct object_id *get_commit_tree_oid(const struct commit *); /* diff --git a/contrib/coccinelle/commit.cocci b/contrib/coccinelle/commit.cocci index 663658a127..d03453341e 100644 --- a/contrib/coccinelle/commit.cocci +++ b/contrib/coccinelle/commit.cocci @@ -23,12 +23,12 @@ expression s; // These excluded functions must access c->maybe_tree direcly. // Note that if c->maybe_tree is written somewhere outside of these // functions, then the recommended transformation will be bogus with -// get_commit_tree() on the LHS. +// repo_get_commit_tree() on the LHS. @@ -identifier f !~ "^(get_commit_tree|get_commit_tree_in_graph_one|load_tree_for_commit|set_commit_tree)$"; +identifier f !~ "^(repo_get_commit_tree|get_commit_tree_in_graph_one|load_tree_for_commit|set_commit_tree)$"; expression c; @@ f(...) {<... - c->maybe_tree -+ get_commit_tree(c) ++ repo_get_commit_tree(specify_the_right_repo_here, c) ...>} From patchwork Tue Apr 16 09:33:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902453 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 211641390 for ; Tue, 16 Apr 2019 09:35:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 06E142835B for ; Tue, 16 Apr 2019 09:35:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EFB8A2892C; Tue, 16 Apr 2019 09:35:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9C8EA2835B for ; Tue, 16 Apr 2019 09:35:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728873AbfDPJfo (ORCPT ); Tue, 16 Apr 2019 05:35:44 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:33030 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJfo (ORCPT ); Tue, 16 Apr 2019 05:35:44 -0400 Received: by mail-pf1-f196.google.com with SMTP id h5so10138316pfo.0 for ; Tue, 16 Apr 2019 02:35:44 -0700 (PDT) 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=91YIinu0nc/kMb5fTELwmvN6/lj9eQjDENEHxFqRkk0=; b=VKMzGuJHPwrxQxy49Rb7+LjZ3eMYdf6mY9hqUjINZvHFLVM6KDS+zieLkFET1Hgp1Y dHQdyZAf8lETUyJD4nh15bjQIKVcTyscD6hMur/dbNwk3LZRo4na/mIXkUwJjT6U2Nty AsEvDUMdFe7QrlQ653gHb7hVc+9lT8qaP1mbVdCW3HvvpS0tgKLMYKvlUppnjRB4gdg5 zgMy8J0iV2Yzi0e/PJkcpqj4hXVDYsfv3otQGrQcAFMc+Fxojf57Emvjf/lhF7GX6D46 hgLqIt5p9wCt6FBSP5IPghrF7k3E2fB+0rxZetoLsX+MdegzFzMthVwTQ0lYilsqJks5 NoKg== 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=91YIinu0nc/kMb5fTELwmvN6/lj9eQjDENEHxFqRkk0=; b=jzlNS4VQtWGcu7gk4gyKihfs5iJ2dGMMLhI8aP9YIpjoQnspmf1nf/y1vSam4IAWCq qmviyNVV1DOZSsM780izGvEIqKue/1jN+fcKtDEmmRz9Svy19KVZRPLPmRyFjnT8VQTr X+aNc7dF/prscQutg7aRa8J2T2zhpU7UczEnktR5Xj4/smhFLhacoJAJfetph9hsFWXO clPInNDa0RdvQoJdncE4ddaQ45n7nHbVjFvPhgiodbAmsl8al3JCrxia3rYODCX/xf9T 6lH/73Kr00/M5HMEdVCzCeoagCougIq8hafmZsd+ksEX7v1bcAeYi1TAXgCDxiB8ghag 8MMg== X-Gm-Message-State: APjAAAW58BeSPvwkXuQnPF4NrvW8+WFB4XDdHqdVrHIhV1IVetOE3m/5 +45zMca51j+EC0EAJNtrsWE= X-Google-Smtp-Source: APXvYqxUgkXxKqNB7Vyorh9FW/ZnfpljsVrRO6mXdCQ0n8gpyMO/vC0vz62HZ2RKTHQlvYxvByOwUg== X-Received: by 2002:a63:3fc3:: with SMTP id m186mr77813904pga.151.1555407343729; Tue, 16 Apr 2019 02:35:43 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id a12sm60299995pgq.21.2019.04.16.02.35.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:35:42 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:35:38 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 13/34] sha1-name.c: remove the_repo from sort_ambiguous() Date: Tue, 16 Apr 2019 16:33:20 +0700 Message-Id: <20190416093341.17079-14-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 15a1107998..7558ce51a3 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -383,10 +383,11 @@ static int collect_ambiguous(const struct object_id *oid, void *data) return 0; } +static struct repository *sort_ambiguous_repo; static int sort_ambiguous(const void *a, const void *b) { - int a_type = oid_object_info(the_repository, a, NULL); - int b_type = oid_object_info(the_repository, b, NULL); + int a_type = oid_object_info(sort_ambiguous_repo, a, NULL); + int b_type = oid_object_info(sort_ambiguous_repo, b, NULL); int a_type_sort; int b_type_sort; @@ -411,6 +412,14 @@ static int sort_ambiguous(const void *a, const void *b) return a_type_sort > b_type_sort ? 1 : -1; } +static void sort_ambiguous_oid_array(struct repository *r, struct oid_array *a) +{ + /* mutex will be needed if this code is to be made thread safe */ + sort_ambiguous_repo = r; + QSORT(a->oid, a->nr, sort_ambiguous); + sort_ambiguous_repo = NULL; +} + static enum get_oid_result get_short_oid(const char *name, int len, struct object_id *oid, unsigned flags) @@ -458,7 +467,7 @@ static enum get_oid_result get_short_oid(const char *name, int len, advise(_("The candidates are:")); for_each_abbrev(ds.hex_pfx, collect_ambiguous, &collect); - QSORT(collect.oid, collect.nr, sort_ambiguous); + sort_ambiguous_oid_array(the_repository, &collect); if (oid_array_for_each(&collect, show_ambiguous_object, &ds)) BUG("show_ambiguous_object shouldn't return non-zero"); From patchwork Tue Apr 16 09:33:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902455 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id B972A161F for ; Tue, 16 Apr 2019 09:35:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9DFAD2892B for ; Tue, 16 Apr 2019 09:35:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9263728931; Tue, 16 Apr 2019 09:35:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 434182892B for ; Tue, 16 Apr 2019 09:35:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728702AbfDPJfu (ORCPT ); Tue, 16 Apr 2019 05:35:50 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:39535 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJfu (ORCPT ); Tue, 16 Apr 2019 05:35:50 -0400 Received: by mail-pl1-f196.google.com with SMTP id a96so10049892pla.6 for ; Tue, 16 Apr 2019 02:35:49 -0700 (PDT) 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=V37+YZWHxLbHM8g82jNygWNvWMjgGALD0kSTQcyltVU=; b=ppi+XuLEk7o4nqOZmacWoCkKeZtegkCEhtNwvpMwNWMFjhu0xYYWyq/jDBSBkMg03Q KsCr14cFjtyvdfAdmOEc39xdhieY5y4EWRNwfEo0HeeCUWUEyPNCSC7/tEBQu+a8+RY3 l7ljwwmJIpA7+nQ++hVccpV7VHG8D6p2ZXq7k9j5U4lwJitna6LH3sNw9EuHPOkf84UA DbrCYspCyGU3YgX3S+iqAbXlQiw+PI3L4y5wnJtHQIUR40fJ3hbC2FGn6ZGGJsD4I5Ta I/v0cHV4jXsC96MC6utZyyrgt4Ob45IBSFuK2VXFmXEWvsKFoxQRotuEW2NG4wtHcKmz LNXw== 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=V37+YZWHxLbHM8g82jNygWNvWMjgGALD0kSTQcyltVU=; b=E2vqHRnTRNBPtIVpsilzgraNQp5XIxHkB7jIQwWhB8Q9p0I2qBJFad7Fqc2n853MHu SmTMpAAkjW+K8oabjL9/DwFXGXKPobHTmlR/hj3iqfvWJQYLTEVDFNiOwHaRjmEPUJKw f7h2wQISDYRhFSCWVQ/Kh5mew6UJvsT+D5ziRU3AzxtFWo9iSDtkaRJny1tURoFHr2vt 4K0hYIg69Exm8KNuR7X9g7rSMCQRGO4FqJtYZTZhhBcePRFfeFE5xwinHUdnda6sLtim uU+Jj9Ob2QQ6vr0LEnfKTdl0fVOiwxZzuknMUFN0lCuFSbCMh/qnXGrZtBuYdnlyV3HS Nygw== X-Gm-Message-State: APjAAAVqeqEYEzFxwI1tFsz1wuEUHAaV71Kon7dpq1PDoQD8fIehoz+o IBamZywDmNASbbY/HxuEzQo= X-Google-Smtp-Source: APXvYqwWUR1S5mk85ltf4/c0wbd1dwRIOpDajjS66C6h5I9sHbS2HM6yQgj9PEk8+Kl4ozTarpXS6g== X-Received: by 2002:a17:902:1c9:: with SMTP id b67mr59425087plb.158.1555407349237; Tue, 16 Apr 2019 02:35:49 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id p66sm76310138pfb.4.2019.04.16.02.35.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:35:48 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:35:44 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 14/34] sha1-name.c: remove the_repo from find_abbrev_len_packed() Date: Tue, 16 Apr 2019 16:33:21 +0700 Message-Id: <20190416093341.17079-15-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 7558ce51a3..b9381aaba6 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -514,6 +514,7 @@ struct min_abbrev_data { unsigned int init_len; unsigned int cur_len; char *hex; + struct repository *repo; const struct object_id *oid; }; @@ -619,9 +620,9 @@ static void find_abbrev_len_packed(struct min_abbrev_data *mad) struct multi_pack_index *m; struct packed_git *p; - for (m = get_multi_pack_index(the_repository); m; m = m->next) + for (m = get_multi_pack_index(mad->repo); m; m = m->next) find_abbrev_len_for_midx(m, mad); - for (p = get_packed_git(the_repository); p; p = p->next) + for (p = get_packed_git(mad->repo); p; p = p->next) find_abbrev_len_for_pack(p, mad); } @@ -658,6 +659,7 @@ int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len) if (len == hexsz || !len) return hexsz; + mad.repo = the_repository; mad.init_len = len; mad.cur_len = len; mad.hex = hex; From patchwork Tue Apr 16 09:33:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902457 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EC63D161F for ; Tue, 16 Apr 2019 09:35:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CEBCE2835B for ; Tue, 16 Apr 2019 09:35:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C197728931; Tue, 16 Apr 2019 09:35:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5ECBB2835B for ; Tue, 16 Apr 2019 09:35:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728916AbfDPJf6 (ORCPT ); Tue, 16 Apr 2019 05:35:58 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:38140 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJf6 (ORCPT ); Tue, 16 Apr 2019 05:35:58 -0400 Received: by mail-pl1-f196.google.com with SMTP id f36so10057193plb.5 for ; Tue, 16 Apr 2019 02:35:57 -0700 (PDT) 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=6GW5RK2A28Bk23UYgJQJKiSWpoQuMkcXOe9rgigieww=; b=XNvDuI4OqzXuOWzvy99FrnYRsfcZsepLjWroQlkBB9S0mEnnDf05b14ebeKcrtMmrM PaEzw0Pg38zEgk6EBge2UbbNAWHV5l9rYT6vRxt59z/fyyzt6GJ7l9Oq6CcFmrfwnDcH iz93WknTa2QZ/hB9Ex690g/FRJR0lCJzF2HV/tBAxm68YL325btn2GJGcRQkequD7Clz w89Hes75+xVyM5R8zsca9W+BiJuJOPXv44wkWiCg4rx4jop6ZquNq080Xz3IScvIZ2ie GYG+FZZ33YIgFXJD6kZ22nptoH3rW4mCwZ24I0QflA9TEKRqnvhkA5imISQV1nbCGHPJ XJrA== 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=6GW5RK2A28Bk23UYgJQJKiSWpoQuMkcXOe9rgigieww=; b=f8UmgfI5v15NraR3krwPdXIc5rkhsKSfU61p7iiKlqadIP7VCyFteLI3DoQzrqmVzl NcNNwDlPtZVKp0RT8yrSU3rq7lqKviUmJZfypkeLLzRGfe2V6C2aRNeGdJT1gJkGnaFP lKdguSsxZDCXIOEVWCrdLJJeorPvZP6A11QvyxJh4dTGlxJC76+c/7dJxLRIA4lB7/sD g9lbrbhsd6lnfVZ+55/DEUzzCJzI66UitpnA4ZYWC8d7VehIgv3wMGHJxDCnd4x0tx7d 2PLdjbaWoQDNkp2yNAPRAtb9bitDVzlg5XbD8dBP6OB3s2BO4wa/q5kt/9BSjJXV93b4 AFkQ== X-Gm-Message-State: APjAAAVvbk4if/0XwwiadiWJqQYJryXgQXgh6LTaaWBAvsMPdj31btUl GpqAtS/1LMilHcQvFkbrybimPMl0 X-Google-Smtp-Source: APXvYqziQORUkA+FcRAjuSUnEsXuy+KU5V3i9Hjls585ep3dNzFV0cLJOsi/O862sVGojWetpTvJ6A== X-Received: by 2002:a17:902:585:: with SMTP id f5mr49815186plf.116.1555407357529; Tue, 16 Apr 2019 02:35:57 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id r87sm117241745pfa.71.2019.04.16.02.35.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:35:54 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:35:49 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 15/34] sha1-name.c: add repo_find_unique_abbrev_r() Date: Tue, 16 Apr 2019 16:33:22 +0700 Message-Id: <20190416093341.17079-16-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 6 ++++-- sha1-name.c | 15 +++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/cache.h b/cache.h index fcb24b5781..4f8ebb0a67 100644 --- a/cache.h +++ b/cache.h @@ -1045,8 +1045,10 @@ extern void check_repository_format(void); * Note that while this version avoids the static buffer, it is not fully * reentrant, as it calls into other non-reentrant git code. */ -extern const char *find_unique_abbrev(const struct object_id *oid, int len); -extern int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len); +const char *repo_find_unique_abbrev(struct repository *r, const struct object_id *oid, int len); +#define find_unique_abbrev(oid, len) repo_find_unique_abbrev(the_repository, oid, len) +int repo_find_unique_abbrev_r(struct repository *r, char *hex, const struct object_id *oid, int len); +#define find_unique_abbrev_r(hex, oid, len) repo_find_unique_abbrev_r(the_repository, hex, oid, len) extern const unsigned char null_sha1[GIT_MAX_RAWSZ]; extern const struct object_id null_oid; diff --git a/sha1-name.c b/sha1-name.c index b9381aaba6..9b57787b76 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -626,15 +626,16 @@ static void find_abbrev_len_packed(struct min_abbrev_data *mad) find_abbrev_len_for_pack(p, mad); } -int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len) +int repo_find_unique_abbrev_r(struct repository *r, char *hex, + const struct object_id *oid, int len) { struct disambiguate_state ds; struct min_abbrev_data mad; struct object_id oid_ret; - const unsigned hexsz = the_hash_algo->hexsz; + const unsigned hexsz = r->hash_algo->hexsz; if (len < 0) { - unsigned long count = approximate_object_count(); + unsigned long count = repo_approximate_object_count(r); /* * Add one because the MSB only tells us the highest bit set, * not including the value of all the _other_ bits (so "15" @@ -659,7 +660,7 @@ int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len) if (len == hexsz || !len) return hexsz; - mad.repo = the_repository; + mad.repo = r; mad.init_len = len; mad.cur_len = len; mad.hex = hex; @@ -681,13 +682,15 @@ int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len) return mad.cur_len; } -const char *find_unique_abbrev(const struct object_id *oid, int len) +const char *repo_find_unique_abbrev(struct repository *r, + const struct object_id *oid, + int len) { static int bufno; static char hexbuffer[4][GIT_MAX_HEXSZ + 1]; char *hex = hexbuffer[bufno]; bufno = (bufno + 1) % ARRAY_SIZE(hexbuffer); - find_unique_abbrev_r(hex, oid, len); + repo_find_unique_abbrev_r(r, hex, oid, len); return hex; } From patchwork Tue Apr 16 09:33:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902459 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3D9DC1390 for ; Tue, 16 Apr 2019 09:36:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 228172835B for ; Tue, 16 Apr 2019 09:36:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 16B792892C; Tue, 16 Apr 2019 09:36:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 48BC72892B for ; Tue, 16 Apr 2019 09:36:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728937AbfDPJgE (ORCPT ); Tue, 16 Apr 2019 05:36:04 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:46928 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJgD (ORCPT ); Tue, 16 Apr 2019 05:36:03 -0400 Received: by mail-pf1-f193.google.com with SMTP id 9so10089312pfj.13 for ; Tue, 16 Apr 2019 02:36:03 -0700 (PDT) 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=KY7cFJryrDrtHm7qKvZz96A/R6hF4Knh4B8JuRphWWw=; b=Xch5WMnjdmfCfU8B/YuvLHUJsvoc6907o2jMYjhO4DZCBTGN9fB4+DVTakJ7maJwk+ txfd3ZUbxFjZ84tFtMoJg+eZnHtWXgOgDWP1g1mt4KZ/dYG/F9KY+unXDBbvr4z+zElZ 5AqRd2gVKbLUJ53si3F8N+wggFCzSEyxG1CcWBq2C05Y6kbEY2i0+/zmZg4ay/yRgimP GpioA4WICECy0uIZ83dRHGKutmPv+nqzY/+zADygNCbwkx77DO8wZ1aiiDqNYWQd1Ooa VV3NeL43y/rX6Go2z0wY8qTxaen0IFCU4F69l1PRukm9VI2JNDDAHTaP1EFw28NUscL+ jf/A== 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=KY7cFJryrDrtHm7qKvZz96A/R6hF4Knh4B8JuRphWWw=; b=MLnMsy06xZjLy2BsumiVTstDXkBa6CYm7VbexLDvvK5PnQeNQbvcTbX1t/PmX27XL7 sogyOm+MVLRrAWC3nci/ZyJT8O3qPmG1soKGpV54WlDYjxxjh4ENR3XQLsjS6t8aUd6A 39pDULrIaUjqDRq2hhhsHfa6Ppw8H25v0IUsa/2cRq8AiB3Mybb+Jc16YpQ4xq086XUh inUR2ykTr+QcBrnvnstFZ/wkhjU7Ou+VJB6xqeHfcnK5QNiPBlu91gM1k1LhFxhCNqUY sJqc6wXuhQ0NPb9TFRsxcRHgpDgQPz5ZbsnR3+jYBjQ5ddD4vRaGmE2LsTlwEsCaTrlp o+vg== X-Gm-Message-State: APjAAAVSOlZRESWa6UfBPb6YdIAUaCOjVTqTUCUNFMjfY89Hsk4VflMW BApHvBgWaYXmDaZUEiwFaGo= X-Google-Smtp-Source: APXvYqxzo2trsiF03TpPxMVMgXbB8V0Wv4WCikausAJONJDXuFCJnqwux4HyszTjgFILx7y+C/uVDg== X-Received: by 2002:a62:26c1:: with SMTP id m184mr44317703pfm.102.1555407362951; Tue, 16 Apr 2019 02:36:02 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id u5sm61819360pfm.121.2019.04.16.02.35.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:36:02 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:35:57 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 16/34] sha1-name.c: store and use repo in struct disambiguate_state Date: Tue, 16 Apr 2019 16:33:23 +0700 Message-Id: <20190416093341.17079-17-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 95 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 36 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 9b57787b76..a75992eb54 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -17,13 +17,14 @@ static int get_oid_oneline(const char *, struct object_id *, struct commit_list *); -typedef int (*disambiguate_hint_fn)(const struct object_id *, void *); +typedef int (*disambiguate_hint_fn)(struct repository *, const struct object_id *, void *); struct disambiguate_state { int len; /* length of prefix in hex chars */ char hex_pfx[GIT_MAX_HEXSZ + 1]; struct object_id bin_pfx; + struct repository *repo; disambiguate_hint_fn fn; void *cb_data; struct object_id candidate; @@ -38,7 +39,7 @@ struct disambiguate_state { static void update_candidates(struct disambiguate_state *ds, const struct object_id *current) { if (ds->always_call_fn) { - ds->ambiguous = ds->fn(current, ds->cb_data) ? 1 : 0; + ds->ambiguous = ds->fn(ds->repo, current, ds->cb_data) ? 1 : 0; return; } if (!ds->candidate_exists) { @@ -58,7 +59,7 @@ static void update_candidates(struct disambiguate_state *ds, const struct object } if (!ds->candidate_checked) { - ds->candidate_ok = ds->fn(&ds->candidate, ds->cb_data); + ds->candidate_ok = ds->fn(ds->repo, &ds->candidate, ds->cb_data); ds->disambiguate_fn_used = 1; ds->candidate_checked = 1; } @@ -71,7 +72,7 @@ static void update_candidates(struct disambiguate_state *ds, const struct object } /* if we reach this point, we know ds->candidate satisfies fn */ - if (ds->fn(current, ds->cb_data)) { + if (ds->fn(ds->repo, current, ds->cb_data)) { /* * if both current and candidate satisfy fn, we cannot * disambiguate. @@ -89,9 +90,7 @@ static void find_short_object_filename(struct disambiguate_state *ds) { struct object_directory *odb; - for (odb = the_repository->objects->odb; - odb && !ds->ambiguous; - odb = odb->next) { + for (odb = ds->repo->objects->odb; odb && !ds->ambiguous; odb = odb->next) { int pos; struct oid_array *loose_objects; @@ -182,10 +181,10 @@ static void find_short_packed_object(struct disambiguate_state *ds) struct multi_pack_index *m; struct packed_git *p; - for (m = get_multi_pack_index(the_repository); m && !ds->ambiguous; + for (m = get_multi_pack_index(ds->repo); m && !ds->ambiguous; m = m->next) unique_in_midx(m, ds); - for (p = get_packed_git(the_repository); p && !ds->ambiguous; + for (p = get_packed_git(ds->repo); p && !ds->ambiguous; p = p->next) unique_in_pack(p, ds); } @@ -215,7 +214,7 @@ static int finish_object_disambiguation(struct disambiguate_state *ds, * same repository! */ ds->candidate_ok = (!ds->disambiguate_fn_used || - ds->fn(&ds->candidate, ds->cb_data)); + ds->fn(ds->repo, &ds->candidate, ds->cb_data)); if (!ds->candidate_ok) return SHORT_NAME_AMBIGUOUS; @@ -224,59 +223,67 @@ static int finish_object_disambiguation(struct disambiguate_state *ds, return 0; } -static int disambiguate_commit_only(const struct object_id *oid, void *cb_data_unused) +static int disambiguate_commit_only(struct repository *r, + const struct object_id *oid, + void *cb_data_unused) { - int kind = oid_object_info(the_repository, oid, NULL); + int kind = oid_object_info(r, oid, NULL); return kind == OBJ_COMMIT; } -static int disambiguate_committish_only(const struct object_id *oid, void *cb_data_unused) +static int disambiguate_committish_only(struct repository *r, + const struct object_id *oid, + void *cb_data_unused) { struct object *obj; int kind; - kind = oid_object_info(the_repository, oid, NULL); + kind = oid_object_info(r, oid, NULL); if (kind == OBJ_COMMIT) return 1; if (kind != OBJ_TAG) return 0; /* We need to do this the hard way... */ - obj = deref_tag(the_repository, parse_object(the_repository, oid), - NULL, 0); + obj = deref_tag(r, parse_object(r, oid), NULL, 0); if (obj && obj->type == OBJ_COMMIT) return 1; return 0; } -static int disambiguate_tree_only(const struct object_id *oid, void *cb_data_unused) +static int disambiguate_tree_only(struct repository *r, + const struct object_id *oid, + void *cb_data_unused) { - int kind = oid_object_info(the_repository, oid, NULL); + int kind = oid_object_info(r, oid, NULL); return kind == OBJ_TREE; } -static int disambiguate_treeish_only(const struct object_id *oid, void *cb_data_unused) +static int disambiguate_treeish_only(struct repository *r, + const struct object_id *oid, + void *cb_data_unused) { struct object *obj; int kind; - kind = oid_object_info(the_repository, oid, NULL); + kind = oid_object_info(r, oid, NULL); if (kind == OBJ_TREE || kind == OBJ_COMMIT) return 1; if (kind != OBJ_TAG) return 0; /* We need to do this the hard way... */ - obj = deref_tag(the_repository, parse_object(the_repository, oid), - NULL, 0); + obj = deref_tag(r, parse_object(r, oid), NULL, 0); if (obj && (obj->type == OBJ_TREE || obj->type == OBJ_COMMIT)) return 1; return 0; } -static int disambiguate_blob_only(const struct object_id *oid, void *cb_data_unused) +static int disambiguate_blob_only(struct repository *r, + const struct object_id *oid, + void *cb_data_unused) { - int kind = oid_object_info(the_repository, oid, NULL); + int kind = oid_object_info(r, oid, NULL); return kind == OBJ_BLOB; } @@ -310,7 +317,8 @@ int set_disambiguate_hint_config(const char *var, const char *value) return error("unknown hint type for '%s': %s", var, value); } -static int init_object_disambiguation(const char *name, int len, +static int init_object_disambiguation(struct repository *r, + const char *name, int len, struct disambiguate_state *ds) { int i; @@ -341,7 +349,8 @@ static int init_object_disambiguation(const char *name, int len, ds->len = len; ds->hex_pfx[len] = '\0'; - prepare_alt_odb(the_repository); + ds->repo = r; + prepare_alt_odb(r); return 0; } @@ -351,25 +360,25 @@ static int show_ambiguous_object(const struct object_id *oid, void *data) struct strbuf desc = STRBUF_INIT; int type; - if (ds->fn && !ds->fn(oid, ds->cb_data)) + if (ds->fn && !ds->fn(ds->repo, oid, ds->cb_data)) return 0; - type = oid_object_info(the_repository, oid, NULL); + type = oid_object_info(ds->repo, oid, NULL); if (type == OBJ_COMMIT) { - struct commit *commit = lookup_commit(the_repository, oid); + struct commit *commit = lookup_commit(ds->repo, oid); if (commit) { struct pretty_print_context pp = {0}; pp.date_mode.type = DATE_SHORT; format_commit_message(commit, " %ad - %s", &desc, &pp); } } else if (type == OBJ_TAG) { - struct tag *tag = lookup_tag(the_repository, oid); + struct tag *tag = lookup_tag(ds->repo, oid); if (!parse_tag(tag) && tag->tag) strbuf_addf(&desc, " %s", tag->tag); } advise(" %s %s%s", - find_unique_abbrev(oid, DEFAULT_ABBREV), + repo_find_unique_abbrev(ds->repo, oid, DEFAULT_ABBREV), type_name(type) ? type_name(type) : "unknown type", desc.buf); @@ -383,6 +392,13 @@ static int collect_ambiguous(const struct object_id *oid, void *data) return 0; } +static int repo_collect_ambiguous(struct repository *r, + const struct object_id *oid, + void *data) +{ + return collect_ambiguous(oid, data); +} + static struct repository *sort_ambiguous_repo; static int sort_ambiguous(const void *a, const void *b) { @@ -428,7 +444,7 @@ static enum get_oid_result get_short_oid(const char *name, int len, struct disambiguate_state ds; int quietly = !!(flags & GET_OID_QUIETLY); - if (init_object_disambiguation(name, len, &ds) < 0) + if (init_object_disambiguation(the_repository, name, len, &ds) < 0) return -1; if (HAS_MULTI_BITS(flags & GET_OID_DISAMBIGUATORS)) @@ -483,11 +499,11 @@ int for_each_abbrev(const char *prefix, each_abbrev_fn fn, void *cb_data) struct disambiguate_state ds; int ret; - if (init_object_disambiguation(prefix, strlen(prefix), &ds) < 0) + if (init_object_disambiguation(the_repository, prefix, strlen(prefix), &ds) < 0) return -1; ds.always_call_fn = 1; - ds.fn = collect_ambiguous; + ds.fn = repo_collect_ambiguous; ds.cb_data = &collect; find_short_object_filename(&ds); find_short_packed_object(&ds); @@ -543,6 +559,13 @@ static int extend_abbrev_len(const struct object_id *oid, void *cb_data) return 0; } +static int repo_extend_abbrev_len(struct repository *r, + const struct object_id *oid, + void *cb_data) +{ + return extend_abbrev_len(oid, cb_data); +} + static void find_abbrev_len_for_midx(struct multi_pack_index *m, struct min_abbrev_data *mad) { @@ -668,10 +691,10 @@ int repo_find_unique_abbrev_r(struct repository *r, char *hex, find_abbrev_len_packed(&mad); - if (init_object_disambiguation(hex, mad.cur_len, &ds) < 0) + if (init_object_disambiguation(r, hex, mad.cur_len, &ds) < 0) return -1; - ds.fn = extend_abbrev_len; + ds.fn = repo_extend_abbrev_len; ds.always_call_fn = 1; ds.cb_data = (void *)&mad; From patchwork Tue Apr 16 09:33:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902461 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1A9E8161F for ; Tue, 16 Apr 2019 09:36:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F36B42835B for ; Tue, 16 Apr 2019 09:36:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E7C062892B; Tue, 16 Apr 2019 09:36:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BF2F82835B for ; Tue, 16 Apr 2019 09:36:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729001AbfDPJgJ (ORCPT ); Tue, 16 Apr 2019 05:36:09 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:42590 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJgJ (ORCPT ); Tue, 16 Apr 2019 05:36:09 -0400 Received: by mail-pl1-f193.google.com with SMTP id cv12so10065331plb.9 for ; Tue, 16 Apr 2019 02:36:09 -0700 (PDT) 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=JgsSnv4q0t/+jt+qmRhtwXSPK1oIQTebVJtB6niflsw=; b=iH4l8U4LAJcwV6oNcPoO9pNLMTZgRNWPzHg0uezLTebzlfWA693xhzIfByMbB0lc8z DsFTBP7eMlQjSsoorTBwy3eGYTUt37WPOSl0Y6JtXqpLr31c3UJ8DCFwWnThZfYEaMs5 5mx/6sXxIZlIwFiIy5e62xftSBgIH2I8Aai6ru7fgJv2TI/Xzz1wXw4MhscVI1yMleta AsWqlBeCONrsxCRmmG8enDtV6FJpazOw1EU0OChrbKdhSIg/Pb0tLoCbdyIcF1O3T7hj 29xUlfzhKAnjL9TWFOcHR+ywCdIiYKDEkqMG2oxAfMoEQoJbmPL3wjh9NKImH/b2J2O7 oPTQ== 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=JgsSnv4q0t/+jt+qmRhtwXSPK1oIQTebVJtB6niflsw=; b=O1ye7gwOekKfJUwDrUpLXFSOilM2lf7zV0aQe/6w5UYx2ZL4sct5DqtQWdsy+q293K kuM+ZT/VzTUl/mcg/v9bwgsOagn1Mh4EIt79gqaFuuU5gHDgGsM1AkGyKlh+ZEiuPT7L LvUxHgtfgtlJRP2qeWriTOLSJwtzZFy1mdrXMNrP4kkMtjfWMvwNiejH7Q83uzjW+KtA KKObWPLhNNFc6hd4JyaTC02ZsX/FpeSh/QGXGcae5NCqDvBY79HdI4AhEeXgXH9MgHet EyaDlW/FGBVXvwdM0s8BqXY8HyUigkjBTmLhxt+KctCPGdtZWDDd1uQj2SqbIGy7Q+z5 oiyA== X-Gm-Message-State: APjAAAVm/YfQhwGyTWXqogA9fBxEmukreaPSubpR1gI55bSeKKchBgAQ RTcE9o94KdXQSeclCvZSmvk= X-Google-Smtp-Source: APXvYqxVLKPhHyRkpC/DGRxxuk3Dp4Ca7UGLFKj19igFKn8GR3ZEb/Tg73RXyLVPVqy+hQUYPu6nEA== X-Received: by 2002:a17:902:2a:: with SMTP id 39mr40703435pla.64.1555407368908; Tue, 16 Apr 2019 02:36:08 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id a6sm72160409pfn.181.2019.04.16.02.36.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:36:07 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:36:03 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 17/34] sha1-name.c: add repo_for_each_abbrev() Date: Tue, 16 Apr 2019 16:33:24 +0700 Message-Id: <20190416093341.17079-18-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 3 ++- sha1-name.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cache.h b/cache.h index 4f8ebb0a67..0cb95c0d4f 100644 --- a/cache.h +++ b/cache.h @@ -1392,7 +1392,8 @@ extern enum get_oid_result get_oid_with_context(struct repository *repo, const c struct object_context *oc); typedef int each_abbrev_fn(const struct object_id *oid, void *); -extern int for_each_abbrev(const char *prefix, each_abbrev_fn, void *); +int repo_for_each_abbrev(struct repository *r, const char *prefix, each_abbrev_fn, void *); +#define for_each_abbrev(prefix, fn, data) repo_for_each_abbrev(the_repository, prefix, fn, data) extern int set_disambiguate_hint_config(const char *var, const char *value); diff --git a/sha1-name.c b/sha1-name.c index a75992eb54..cdcf84b826 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -493,13 +493,14 @@ static enum get_oid_result get_short_oid(const char *name, int len, return status; } -int for_each_abbrev(const char *prefix, each_abbrev_fn fn, void *cb_data) +int repo_for_each_abbrev(struct repository *r, const char *prefix, + each_abbrev_fn fn, void *cb_data) { struct oid_array collect = OID_ARRAY_INIT; struct disambiguate_state ds; int ret; - if (init_object_disambiguation(the_repository, prefix, strlen(prefix), &ds) < 0) + if (init_object_disambiguation(r, prefix, strlen(prefix), &ds) < 0) return -1; ds.always_call_fn = 1; From patchwork Tue Apr 16 09:33:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902463 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EACCA161F for ; Tue, 16 Apr 2019 09:36:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CF5C12881A for ; Tue, 16 Apr 2019 09:36:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C3AFE2892B; Tue, 16 Apr 2019 09:36:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 665672835B for ; Tue, 16 Apr 2019 09:36:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728963AbfDPJgX (ORCPT ); Tue, 16 Apr 2019 05:36:23 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:37587 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJgX (ORCPT ); Tue, 16 Apr 2019 05:36:23 -0400 Received: by mail-pf1-f193.google.com with SMTP id 8so10125005pfr.4 for ; Tue, 16 Apr 2019 02:36:22 -0700 (PDT) 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=8uz9R+PqbuYzGdOKlwZFS/uMQjQLrusrJjz/EgM7SJU=; b=skgJZnQCvIamTGm9FdD52aqz5OzdhC9E+QFcPykF+LrMA+Mgyd8CCOvDxd4ltdyjXH h/D9dcs2w0+3hQ0fikXR5dSKp6XRG+Sk9mdbh+lVOSTFt+VJo1Pcb9ohgBhKI1Cnncwf gb/TqmKDXdRyJ37vhwqiQRAw1i8Cx9EQH43467pmk4BX+yeagUc8jmSX21lbX3DFXNwk wRDYiI367kTt/kKmBwadKfxPh6wAw+CsHhErXn07jA7zbXlYGCTOQRVquVTltkSltpI1 HS6d4YIQbjfwhUJ96Dd/DdK0Nx8qkS/wwiniwDYpPKeHrHhhGtIJOqBn5+37DAcNRqYs XD1g== 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=8uz9R+PqbuYzGdOKlwZFS/uMQjQLrusrJjz/EgM7SJU=; b=oEN5ZepWVykykggZx9kg/Xztin+uo8vdJa26LJxiC5Ne1R0VICP4tlMvQYTkDD1dQN jbIWsPYpSNg3dnGcYOlZokiW2hE7TTpO+BE7Ce2UmmTP15BTTOHXgBbJcXXx8iz11Jsw edHln69b2FUVInxZSBDYvUtWbYmS1KP/c2gYsPiKjvGiCxuLLtV5MHdH6JTqINR/McD5 TROcljZmjUflAou4sCgXkyE2OuewX1NZTlLnA4TBP1crEU66JZYdPaBPzt8VBD792zc5 QsBQXa3WJrN4WkMjcA/nzrDdSef22WcXfNN/KF8o1eW7XPJdWSZjvsWDvzz3yY8eXm4Q kk9g== X-Gm-Message-State: APjAAAVxWBku948cQPWRx4Vzs4YGQ8MrYRs8YDzG2TjXtXoXTpyWY8kp i9BpC9MDLH0FCmgtPu7xdtI= X-Google-Smtp-Source: APXvYqzgNeh+IpgiCqr5/LOejHk3EC3M8LvAcLjecexFFFSfITt5cU2hpcgH2UdJZvaK8yuovnfgcQ== X-Received: by 2002:a65:6489:: with SMTP id e9mr74869499pgv.364.1555407382624; Tue, 16 Apr 2019 02:36:22 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id e21sm69458436pfd.177.2019.04.16.02.36.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:36:19 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:36:09 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 18/34] sha1-name.c: remove the_repo from get_short_oid() Date: Tue, 16 Apr 2019 16:33:25 +0700 Message-Id: <20190416093341.17079-19-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index cdcf84b826..2643b75b54 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -436,7 +436,8 @@ static void sort_ambiguous_oid_array(struct repository *r, struct oid_array *a) sort_ambiguous_repo = NULL; } -static enum get_oid_result get_short_oid(const char *name, int len, +static enum get_oid_result get_short_oid(struct repository *r, + const char *name, int len, struct object_id *oid, unsigned flags) { @@ -444,7 +445,7 @@ static enum get_oid_result get_short_oid(const char *name, int len, struct disambiguate_state ds; int quietly = !!(flags & GET_OID_QUIETLY); - if (init_object_disambiguation(the_repository, name, len, &ds) < 0) + if (init_object_disambiguation(r, name, len, &ds) < 0) return -1; if (HAS_MULTI_BITS(flags & GET_OID_DISAMBIGUATORS)) @@ -482,8 +483,8 @@ static enum get_oid_result get_short_oid(const char *name, int len, ds.fn = NULL; advise(_("The candidates are:")); - for_each_abbrev(ds.hex_pfx, collect_ambiguous, &collect); - sort_ambiguous_oid_array(the_repository, &collect); + repo_for_each_abbrev(r, ds.hex_pfx, collect_ambiguous, &collect); + sort_ambiguous_oid_array(r, &collect); if (oid_array_for_each(&collect, show_ambiguous_object, &ds)) BUG("show_ambiguous_object shouldn't return non-zero"); @@ -855,7 +856,8 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, if (warn_ambiguous_refs && !(flags & GET_OID_QUIETLY) && (refs_found > 1 || - !get_short_oid(str, len, &tmp_oid, GET_OID_QUIETLY))) + !get_short_oid(the_repository, + str, len, &tmp_oid, GET_OID_QUIETLY))) warning(warn_msg, len, str); if (reflog_len) { @@ -1109,7 +1111,8 @@ static int get_describe_name(const char *name, int len, struct object_id *oid) if (ch == 'g' && cp[-1] == '-') { cp++; len -= cp - name; - return get_short_oid(cp, len, oid, flags); + return get_short_oid(the_repository, + cp, len, oid, flags); } } } @@ -1163,7 +1166,7 @@ static enum get_oid_result get_oid_1(const char *name, int len, if (!ret) return FOUND; - return get_short_oid(name, len, oid, lookup_flags); + return get_short_oid(the_repository, name, len, oid, lookup_flags); } /* From patchwork Tue Apr 16 09:33:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902465 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 72AAB161F for ; Tue, 16 Apr 2019 09:36:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 557C42835B for ; Tue, 16 Apr 2019 09:36:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4A0802892B; Tue, 16 Apr 2019 09:36:30 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DB1D32835B for ; Tue, 16 Apr 2019 09:36:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728972AbfDPJg3 (ORCPT ); Tue, 16 Apr 2019 05:36:29 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:34731 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJg2 (ORCPT ); Tue, 16 Apr 2019 05:36:28 -0400 Received: by mail-pg1-f195.google.com with SMTP id v12so10070925pgq.1 for ; Tue, 16 Apr 2019 02:36:28 -0700 (PDT) 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=792oefmhbdLjQAr3XkKYiXStA0mFKhfa/xqCUGWZ4Ow=; b=mPzX837z7oZ4z9ykPhQq/PQtIlxhPrZ+/cnKsWPUHpPwt7s1baT0CDlxHwyl1VjOGi KOGxbbboXlt5yLO5CMJ7/mQKwN0oqz5XQ4+i3yLaurGP0Oztub5GmujETbYn6HT/D7GB u7JfvDnPNjPpUdwlTxhv18iu5Ooh3IPa6UEqR5O/6Llho4sjX1DsioY/Exlv41aT7snR 3Ctth2aq0MeW/yyq0CFjTi7BXSlY1fUWP2zU2QDv6IeX5nCogzF4DaZdLjzMyRRvD0dL Ecq+W93GnHRBALtb/0RWBQw1gCJHtY2JIYgKjtjhxh5GOqeKpr5ySKdsul45v8+XNI/y sE0g== 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=792oefmhbdLjQAr3XkKYiXStA0mFKhfa/xqCUGWZ4Ow=; b=GoUqJmompeyt8WmbR76YMzN51saOT/3FtmzhdgjhpqLC93d8xv/bzl3NyFDKdPyee9 EcuZwuhilnztrW+QYhMpTRL+0pd1QaGkOJLj2xptEtvM1F6dDSgPMmBp3fNGx+hroPNX aXsJvoDFcY36cXep7mnImHF0uwvfSnDaTyxqaHp4mHTjUmisoz1/QKR4Do7nhh7fEZVn NHXkckQOl/KEoZuSQlMfANlSJCafK6hycGz/PM03CTzgzHZBKQe2HJgGcMKFhoLVygpE XLmRunr0PIyDQLSdwm1DuE/KFScWtFXWb3nIeB+JB7mPlgVJLpDX4/wO9nujpCHA4xpK Umzw== X-Gm-Message-State: APjAAAUU/GEdMi3+MmzrrKclmmfhR9rKnpy1dBaPOsVOM8Cv4meo/+9X aZwC1BbGiRswdEv8OTpbrq4= X-Google-Smtp-Source: APXvYqwOuq7nQUjVwOUVvkMQHXWyFdH+Zxu0C7G7iS8uLQ1UEXI1hb30TeMni352poWhZ0SvGm5aPA== X-Received: by 2002:a63:f115:: with SMTP id f21mr70116692pgi.65.1555407388029; Tue, 16 Apr 2019 02:36:28 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id 6sm46625018pft.64.2019.04.16.02.36.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:36:27 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:36:22 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 19/34] sha1-name.c: remove the_repo from interpret_nth_prior_checkout() Date: Tue, 16 Apr 2019 16:33:26 +0700 Message-Id: <20190416093341.17079-20-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 2643b75b54..af8bf5b351 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -771,7 +771,7 @@ static inline int push_mark(const char *string, int len) } static enum get_oid_result get_oid_1(const char *name, int len, struct object_id *oid, unsigned lookup_flags); -static int interpret_nth_prior_checkout(const char *name, int namelen, struct strbuf *buf); +static int interpret_nth_prior_checkout(struct repository *r, const char *name, int namelen, struct strbuf *buf); static int get_oid_basic(const char *str, int len, struct object_id *oid, unsigned int flags) @@ -835,7 +835,7 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, struct strbuf buf = STRBUF_INIT; int detached; - if (interpret_nth_prior_checkout(str, len, &buf) > 0) { + if (interpret_nth_prior_checkout(the_repository, str, len, &buf) > 0) { detached = (buf.len == the_hash_algo->hexsz && !get_oid_hex(buf.buf, oid)); strbuf_release(&buf); if (detached) @@ -1288,7 +1288,8 @@ static int grab_nth_branch_switch(struct object_id *ooid, struct object_id *noid * Parse @{-N} syntax, return the number of characters parsed * if successful; otherwise signal an error with negative value. */ -static int interpret_nth_prior_checkout(const char *name, int namelen, +static int interpret_nth_prior_checkout(struct repository *r, + const char *name, int namelen, struct strbuf *buf) { long nth; @@ -1312,12 +1313,14 @@ static int interpret_nth_prior_checkout(const char *name, int namelen, cb.remaining = nth; strbuf_init(&cb.buf, 20); - retval = 0; - if (0 < for_each_reflog_ent_reverse("HEAD", grab_nth_branch_switch, &cb)) { + retval = refs_for_each_reflog_ent_reverse(get_main_ref_store(r), + "HEAD", grab_nth_branch_switch, &cb); + if (0 < retval) { strbuf_reset(buf); strbuf_addbuf(buf, &cb.buf); retval = brace - name + 1; - } + } else + retval = 0; strbuf_release(&cb.buf); return retval; @@ -1484,7 +1487,7 @@ int repo_interpret_branch_name(struct repository *r, namelen = strlen(name); if (!allowed || (allowed & INTERPRET_BRANCH_LOCAL)) { - len = interpret_nth_prior_checkout(name, namelen, buf); + len = interpret_nth_prior_checkout(the_repository, name, namelen, buf); if (!len) { return len; /* syntax Ok, not enough switches */ } else if (len > 0) { From patchwork Tue Apr 16 09:33:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902467 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id ED7CA161F for ; Tue, 16 Apr 2019 09:36:35 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CC5892881A for ; Tue, 16 Apr 2019 09:36:35 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BD25D2835B; Tue, 16 Apr 2019 09:36:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 643792835B for ; Tue, 16 Apr 2019 09:36:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729005AbfDPJge (ORCPT ); Tue, 16 Apr 2019 05:36:34 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:34095 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726645AbfDPJgd (ORCPT ); Tue, 16 Apr 2019 05:36:33 -0400 Received: by mail-pf1-f194.google.com with SMTP id b3so10131194pfd.1 for ; Tue, 16 Apr 2019 02:36:33 -0700 (PDT) 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=EWJeBEVQ6y4/jgIZVFGfDqfjduHgcPTzI8Qo1NNEpcQ=; b=TZIU2FYqU4d2y9SXOL0957N30t00eZbiR4KBPxyoOnEyaXZpb1uI3kk7wGxmofZZh9 z3DPfTzmbE+9fREcg2v6/0U3NN6y9BhE1Y5P1TYQJS3xYOQls9+qjCH04fH7dkqwhMkd WK7TmrAdAscucfxqLUhXc2uEQilMWBKDwg0kVXA+k+uOGlA1JR/+GwFl7odaMwK1fg8H T3p9Vwu9nE/AF8l0Xk6JCZse9xP+dvD6bWxJC+m3FvCF+Ka+yMP6z8/mOvulMrMDc15O Aq30+myGAEeDtlciWqe4AoQ43/q/FwNNZYraJQauBq1GODIJ+riiOzy360TjCXIRSOMF Ct5g== 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=EWJeBEVQ6y4/jgIZVFGfDqfjduHgcPTzI8Qo1NNEpcQ=; b=nXGtSxNC3/eyAD6Lp5OFPi3Qh+jqrYMfpcLJzXOo7o3VIczYKRBGDsEqwDoFbcOeOj H7rEFuQVI/RVXu9iQlB0zeTEOr07vi5LnVAhSNVccz96Vh9lgFx/T1TUOEpqExGoRi9J E94wkf+aMRnnfSWMB4KIODfEW69za3VqjmZWzAB9YA/Z1hqfFEnDIzGH3Bc+8xrSP+Pl R82gh4W/9PFNIdTAguZd19a2nwRaRknRStQGu//kYyTyHc2puT4hiQy4iLzQ3DMKUhis 6SRqL+Dx4VerIrsDlNk0O5LFnAG0X08o8mRdVOkfUGpyGy53xglx0oiXRPxtZEpe5nZ3 5JrA== X-Gm-Message-State: APjAAAU7d7XR2PnoQo7cedHuUpCdfyzSvyBZGy4WT4ixO+FTbtWfaUB5 eOVA8lR5Dlf6pnUhN+Qp9Fk= X-Google-Smtp-Source: APXvYqwCWcqYVAM7BiYLSxGKCDSu6wKsut2G/VPbHq+2179dI6zG0ZQ7OCXOZ2th/f0C1bepepgOWw== X-Received: by 2002:a62:1b8a:: with SMTP id b132mr82145473pfb.19.1555407393326; Tue, 16 Apr 2019 02:36:33 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id 17sm121643759pfw.65.2019.04.16.02.36.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:36:32 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:36:28 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 20/34] sha1-name.c: remove the_repo from interpret_branch_mark() Date: Tue, 16 Apr 2019 16:33:27 +0700 Message-Id: <20190416093341.17079-21-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index af8bf5b351..7d9512ac44 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1412,9 +1412,9 @@ static int reinterpret(const char *name, int namelen, int len, return ret - used + len; } -static void set_shortened_ref(struct strbuf *buf, const char *ref) +static void set_shortened_ref(struct repository *r, struct strbuf *buf, const char *ref) { - char *s = shorten_unambiguous_ref(ref, 0); + char *s = refs_shorten_unambiguous_ref(get_main_ref_store(r), ref, 0); strbuf_reset(buf); strbuf_addstr(buf, s); free(s); @@ -1435,7 +1435,8 @@ static int branch_interpret_allowed(const char *refname, unsigned allowed) return 0; } -static int interpret_branch_mark(const char *name, int namelen, +static int interpret_branch_mark(struct repository *r, + const char *name, int namelen, int at, struct strbuf *buf, int (*get_mark)(const char *, int), const char *(*get_data)(struct branch *, @@ -1468,7 +1469,7 @@ static int interpret_branch_mark(const char *name, int namelen, if (!branch_interpret_allowed(value, allowed)) return -1; - set_shortened_ref(buf, value); + set_shortened_ref(r, buf, value); return len + at; } @@ -1509,13 +1510,13 @@ int repo_interpret_branch_name(struct repository *r, allowed); } - len = interpret_branch_mark(name, namelen, at - name, buf, + len = interpret_branch_mark(the_repository, name, namelen, at - name, buf, upstream_mark, branch_get_upstream, allowed); if (len > 0) return len; - len = interpret_branch_mark(name, namelen, at - name, buf, + len = interpret_branch_mark(the_repository, name, namelen, at - name, buf, push_mark, branch_get_push, allowed); if (len > 0) From patchwork Tue Apr 16 09:33:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902469 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6F0C61390 for ; Tue, 16 Apr 2019 09:36:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 509222835B for ; Tue, 16 Apr 2019 09:36:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 44AF62892B; Tue, 16 Apr 2019 09:36:44 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D9F422835B for ; Tue, 16 Apr 2019 09:36:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729048AbfDPJgm (ORCPT ); Tue, 16 Apr 2019 05:36:42 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:36089 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729023AbfDPJgj (ORCPT ); Tue, 16 Apr 2019 05:36:39 -0400 Received: by mail-pf1-f194.google.com with SMTP id z5so10124433pfn.3 for ; Tue, 16 Apr 2019 02:36:39 -0700 (PDT) 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=rVjU6r29pDbupTY7CdDKciCqM+l3iwaWNxGJE9kexEU=; b=a6CXfe74QC9rI/8VSsxq1euhMmmPm3CEIW/LZujMGvhXT7HfQfJYj/+uE0rWxMoUSO lvEJKNNM52KhbgL32k4fCqSOVxM1WowKCn/cH8VN5aG1FaMpxcWRgrgbJUX+18ua/X5z RuGmYx9uaNBZ4hGT+4WhKEfcRHJfoLNKEFkaCv/elvwdDp96nsoFrHYNy77x9QvcAN6h /sKR8h3Vpy3GmUFcyDVtBvRYxjVY9wdSwNEDtNJm0pGuMpoZh0wG7lXv/OoJy/3Qi2Cp 25P5pP2wkko4Ea8DuYbOtvW/Oc1h5V/ZxDMNQIo/pQx10JH023qGKW4d257VoslM8GEi ceZA== 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=rVjU6r29pDbupTY7CdDKciCqM+l3iwaWNxGJE9kexEU=; b=EwJULrq/DnkdeX1XmKaCJ2c063z9xN+7lipCMHRcMkPV+I259JQEBmVkC36BXw8/2B mrmmOwHgfAE10ysUmm/OxkykDg4PcodQ995LR7oOVx/qVWtXDMobPisuMQCN2h4aFw4M iL2rvPC7Gxi8xk8meZjJte4ZXR2ul2kX1WPV/D9MtAnTDrxbB/6941dmQSGihzJsS02L z/6S2S/IqkcHbNmJNmJFbWMbTTRDLNatzGZf7dEVU1dcpGd2e/BBWrKQ9JCGOogTz5Gb ghEszSYzIcr+/uvZuSN0802wBPBXgww7apWtrQpLOIly+sVS2ayC5fk4SfWxfyAj4I7q fG/A== X-Gm-Message-State: APjAAAV8A3jXqT7o/npJQ2E1Ws1pgPx1michaTSV0p97Pf4i/wbjgTUS U0LsAk8sCM/rJ5ixMoSILXrh/tEn X-Google-Smtp-Source: APXvYqwWZWmKIYK1JH4v8uYjTqdVMd/3PFZgte/HWBk7sh5CeiSS+G9RZydYch0RFvEEzl7thT1cGw== X-Received: by 2002:a63:e915:: with SMTP id i21mr75255675pgh.297.1555407398962; Tue, 16 Apr 2019 02:36:38 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id j62sm57760302pfg.6.2019.04.16.02.36.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:36:38 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:36:33 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 21/34] sha1-name.c: add repo_interpret_branch_name() Date: Tue, 16 Apr 2019 16:33:28 +0700 Message-Id: <20190416093341.17079-22-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 7d9512ac44..49c62d5254 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1390,7 +1390,8 @@ static int interpret_empty_at(const char *name, int namelen, int len, struct str return 1; } -static int reinterpret(const char *name, int namelen, int len, +static int reinterpret(struct repository *r, + const char *name, int namelen, int len, struct strbuf *buf, unsigned allowed) { /* we have extra data, which might need further processing */ @@ -1399,7 +1400,7 @@ static int reinterpret(const char *name, int namelen, int len, int ret; strbuf_add(buf, name + len, namelen - len); - ret = interpret_branch_name(buf->buf, buf->len, &tmp, allowed); + ret = repo_interpret_branch_name(r, buf->buf, buf->len, &tmp, allowed); /* that data was not interpreted, remove our cruft */ if (ret < 0) { strbuf_setlen(buf, used); @@ -1482,20 +1483,18 @@ int repo_interpret_branch_name(struct repository *r, const char *start; int len; - if (r != the_repository) - BUG("interpret_branch_name() does not really use 'r' yet"); if (!namelen) namelen = strlen(name); if (!allowed || (allowed & INTERPRET_BRANCH_LOCAL)) { - len = interpret_nth_prior_checkout(the_repository, name, namelen, buf); + len = interpret_nth_prior_checkout(r, name, namelen, buf); if (!len) { return len; /* syntax Ok, not enough switches */ } else if (len > 0) { if (len == namelen) return len; /* consumed all */ else - return reinterpret(name, namelen, len, buf, allowed); + return reinterpret(r, name, namelen, len, buf, allowed); } } @@ -1506,17 +1505,17 @@ int repo_interpret_branch_name(struct repository *r, if (!allowed || (allowed & INTERPRET_BRANCH_HEAD)) { len = interpret_empty_at(name, namelen, at - name, buf); if (len > 0) - return reinterpret(name, namelen, len, buf, + return reinterpret(r, name, namelen, len, buf, allowed); } - len = interpret_branch_mark(the_repository, name, namelen, at - name, buf, + len = interpret_branch_mark(r, name, namelen, at - name, buf, upstream_mark, branch_get_upstream, allowed); if (len > 0) return len; - len = interpret_branch_mark(the_repository, name, namelen, at - name, buf, + len = interpret_branch_mark(r, name, namelen, at - name, buf, push_mark, branch_get_push, allowed); if (len > 0) From patchwork Tue Apr 16 09:33:29 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902471 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 216121390 for ; Tue, 16 Apr 2019 09:36:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 02ECD2892B for ; Tue, 16 Apr 2019 09:36:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EAEE02881A; Tue, 16 Apr 2019 09:36:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 80E952881A for ; Tue, 16 Apr 2019 09:36:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729023AbfDPJgr (ORCPT ); Tue, 16 Apr 2019 05:36:47 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:45320 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727037AbfDPJgr (ORCPT ); Tue, 16 Apr 2019 05:36:47 -0400 Received: by mail-pg1-f196.google.com with SMTP id y3so10041488pgk.12 for ; Tue, 16 Apr 2019 02:36:46 -0700 (PDT) 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=Au72nD0mzmIoTlJ4G9ZcHMEFQ21HgCU9A/l+x38acd4=; b=mhOWOqOo5lETmVW6e6icfCuOniFRWWjoCFROPwg2fy9M/G6mqwSQL9ZKqx8+Wi1Kn8 q1huHu0+eU4Qz0s3vHDA6M6H8Daru9toaGExdHPnWFXGhCjzlkomMr44xx+IrEblSVZ0 4E/k1jFD3bRocUPysKdx8lp+ZOVBp/JGrMv/rvT3iQpvjUJ7qjPHtCXrorHT14o/Dwey Y81RcgqTTmel5ydPtaj+8BYcLqn05YfLVy3rVG9p7b3WtoA0T5i2XZupiMxzHHi+Lr8Z BXxFm9kSNgMLkTTpYdHwyV8Q14qwKAdvomn63+SUyeWzAd6+BDPV2oNMynh2OELq4u15 5nnA== 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=Au72nD0mzmIoTlJ4G9ZcHMEFQ21HgCU9A/l+x38acd4=; b=k84dU9h4zzNwsZGfKmBIpS8ZvbBgWZISqmiHeWJHIH0y3pCNx43OllKtm4Ngl0qkIq owBlWahZh1w0Q8Mx8Vm9q/edKoVxC3JCMka+qOHColhMwmxK+3WyROBLmelIemZUhab1 GjL1yRwe0Fd05Ey7RbMOc+jWZODe500fKI3abGb8j3CrqtTtBF4Z1Jy3U8RgxONP0O3b qvVCUvu1EdLWVvDeX2ZWLHCJyIgrLVWIsbo0jZ55He4a1qGqNis871wV2dcKozO9N0WP niY32cB69wUh8ARdeRDF1pGdt3XE0XqjREgcowuv5b7yvXJcAiXDNBRgOW9BC7MWYxJb NtWg== X-Gm-Message-State: APjAAAWVa2BKRYEVvpKAkjKL45YUwilIe4jHOPgeUGktUA+5Cv+cULHU OKCOx9o6HOjMOpRQDd50rbyNL2vJ X-Google-Smtp-Source: APXvYqzEUrGHsSoopN+4cApq5t0ytMGwh1KelvRA5+fc+k8ube6XuMfNaMYxLd2mNm1msaTi2znbBA== X-Received: by 2002:a62:1318:: with SMTP id b24mr80419031pfj.201.1555407406361; Tue, 16 Apr 2019 02:36:46 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id q74sm93130396pfc.111.2019.04.16.02.36.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:36:43 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:36:39 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 22/34] sha1-name.c: remove the_repo from get_oid_oneline() Date: Tue, 16 Apr 2019 16:33:29 +0700 Message-Id: <20190416093341.17079-23-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 49c62d5254..fb80306f1a 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -15,7 +15,7 @@ #include "midx.h" #include "commit-reach.h" -static int get_oid_oneline(const char *, struct object_id *, struct commit_list *); +static int get_oid_oneline(struct repository *r, const char *, struct object_id *, struct commit_list *); typedef int (*disambiguate_hint_fn)(struct repository *, const struct object_id *, void *); @@ -1090,7 +1090,7 @@ static int peel_onion(const char *name, int len, struct object_id *oid, prefix = xstrndup(sp + 1, name + len - 1 - (sp + 1)); commit_list_insert((struct commit *)o, &list); - ret = get_oid_oneline(prefix, oid, list); + ret = get_oid_oneline(the_repository, prefix, oid, list); free(prefix); return ret; } @@ -1204,8 +1204,9 @@ static int handle_one_ref(const char *path, const struct object_id *oid, return 0; } -static int get_oid_oneline(const char *prefix, struct object_id *oid, - struct commit_list *list) +static int get_oid_oneline(struct repository *r, + const char *prefix, struct object_id *oid, + struct commit_list *list) { struct commit_list *backup = NULL, *l; int found = 0; @@ -1236,7 +1237,7 @@ static int get_oid_oneline(const char *prefix, struct object_id *oid, int matches; commit = pop_most_recent_commit(&list, ONELINE_SEEN); - if (!parse_object(the_repository, &commit->object.oid)) + if (!parse_object(r, &commit->object.oid)) continue; buf = get_commit_buffer(commit, NULL); p = strstr(buf, "\n\n"); @@ -1760,7 +1761,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, for_each_ref(handle_one_ref, &list); head_ref(handle_one_ref, &list); commit_list_sort_by_date(&list); - return get_oid_oneline(name + 2, oid, list); + return get_oid_oneline(repo, name + 2, oid, list); } if (namelen < 3 || name[2] != ':' || From patchwork Tue Apr 16 09:33:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902473 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 68C9F161F for ; Tue, 16 Apr 2019 09:36:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4BAD52835B for ; Tue, 16 Apr 2019 09:36:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 400402892B; Tue, 16 Apr 2019 09:36:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DF8E02835B for ; Tue, 16 Apr 2019 09:36:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728336AbfDPJgw (ORCPT ); Tue, 16 Apr 2019 05:36:52 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:34768 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727037AbfDPJgw (ORCPT ); Tue, 16 Apr 2019 05:36:52 -0400 Received: by mail-pg1-f196.google.com with SMTP id v12so10071412pgq.1 for ; Tue, 16 Apr 2019 02:36:51 -0700 (PDT) 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=BBcE/htEt0yLODu/QQPxJGdb4Ph6/ILKdkvdhPKDqkg=; b=QzDa9IW3UfS5fRAjMmQJo/6Gi61WD7no2W14XbSSGM74vKS0/d0VuFizCxJagn1DdK 8CyqsfJc8tVJQcVskk7zHTJr/b768htbw/AG31nbmdThpj3jwxO2biklbO3QXdPz5d28 W+HLujYJYJuk1Mird/TceyJPoHM1/+cvHRkYQ/ozU1HBY1PLV8AZU6v9YZ/Qnquj5QbM /HJ7Q1i7asq6FFsc2QWJJm9r82Iv8jyzhdq8fu+JppXV77cVWRx2iB4owxJS0pH2MGqy QzluLYTrf8cKbMa7oMLVhurMCsXZEesb3St5KbQ1sQ4jIcU+QmSGGbReTV+ec7TKAnV7 qD5w== 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=BBcE/htEt0yLODu/QQPxJGdb4Ph6/ILKdkvdhPKDqkg=; b=JxFt05qJB74Q+DhzEY+MUaoaUpEAOsZnVahrNSuPOXn6h9ZnF2oOuJ1npA5rTNS6aM uNjDsk4s5jV5fG9oJ7oAhfXsfKkDAj0uHGaE7T5cLRVOFHMcdYIex9HL9LK3JjJ+roqM OrKZVQ2awv8n0pw+SxQWcgTacbrd22N2noabCBAck7+fp5EoBPj24LFm1qlNLzwujfE3 WEiil32gWEZfM6N4GD+Dk5OGNQemKDVgMSy+VItyOvwsU+KrYIaYZqUxs9G7DrFa0TIH Pus4Xf5keZpbuuxo2PPTMc7oBPeVCbHnYInLoU4cZQoeQ3iRDQ8Tw2gj1cwv8+LOvCIN YITA== X-Gm-Message-State: APjAAAXZnHP7zt9xnuKMgQ0qz10AK1J36pgYPKkSno/mZidM4+RYL24w g/225XA+A1FtFiRZa1LRTWI= X-Google-Smtp-Source: APXvYqxOQPET8d+oRX0NMslu45eoRHoE6fHVx1Xrb3XvQZhlvazgb379hfiocrMwWWRcQjvocJtr3g== X-Received: by 2002:a63:7843:: with SMTP id t64mr57021404pgc.130.1555407411678; Tue, 16 Apr 2019 02:36:51 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id t13sm63644279pgo.14.2019.04.16.02.36.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:36:51 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:36:46 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 23/34] sha1-name.c: remove the_repo from get_describe_name() Date: Tue, 16 Apr 2019 16:33:30 +0700 Message-Id: <20190416093341.17079-24-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index fb80306f1a..1cda854f02 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1097,7 +1097,9 @@ static int peel_onion(const char *name, int len, struct object_id *oid, return 0; } -static int get_describe_name(const char *name, int len, struct object_id *oid) +static int get_describe_name(struct repository *r, + const char *name, int len, + struct object_id *oid) { const char *cp; unsigned flags = GET_OID_QUIETLY | GET_OID_COMMIT; @@ -1111,7 +1113,7 @@ static int get_describe_name(const char *name, int len, struct object_id *oid) if (ch == 'g' && cp[-1] == '-') { cp++; len -= cp - name; - return get_short_oid(the_repository, + return get_short_oid(r, cp, len, oid, flags); } } @@ -1162,7 +1164,7 @@ static enum get_oid_result get_oid_1(const char *name, int len, return FOUND; /* It could be describe output that is "SOMETHING-gXXXX" */ - ret = get_describe_name(name, len, oid); + ret = get_describe_name(the_repository, name, len, oid); if (!ret) return FOUND; From patchwork Tue Apr 16 09:33:31 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902475 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 57833161F for ; Tue, 16 Apr 2019 09:37:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3CCE128936 for ; Tue, 16 Apr 2019 09:37:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 315F92893A; Tue, 16 Apr 2019 09:37:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B75A928936 for ; Tue, 16 Apr 2019 09:36:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728686AbfDPJg6 (ORCPT ); Tue, 16 Apr 2019 05:36:58 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:39387 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728365AbfDPJg6 (ORCPT ); Tue, 16 Apr 2019 05:36:58 -0400 Received: by mail-pf1-f196.google.com with SMTP id i17so10119831pfo.6 for ; Tue, 16 Apr 2019 02:36:58 -0700 (PDT) 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=2jfpWtAW9KfCmy61rbndmy23CFcMW3p+iYAbx0X/NMY=; b=U+I6OPiOLtSR7eh7m5fu3a14aFwsEr3Tj1CXKEjJ0nzKaWEfKtdcbNUc0QVYpTdiFx sXftMrL/6xTm9QLqSDJd+DzcEN0nGBtQKjZXl4KdJuN9OelAvWK9CxJQ7ciLZoNu0m9x 1/qY7FrbJaxQdgBzA9FN5VbB6ETj4p8QMomTaKAhy8pYf3ZMSQtJOm8sgVuuH1Z3XZxZ jPBrKgZSwyM7XyHc88nRyuy3Brz3/49Gmj0P/99qD5cQdrTXPbZffD8o8Z1K714aVUWj PQ/85h6T/BxavBJCKFXGmR41x3m4H4cc8I2fpVt5Exn7+Zla0RBo0Aq1vufVq00Dg9nJ Kp+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=2jfpWtAW9KfCmy61rbndmy23CFcMW3p+iYAbx0X/NMY=; b=jWEssfx4mxakpmnytrSiVpsu/9rqlpWfw7hrf3u8GeP8NeyvpB4JVTEZSSN+7Ovv+7 q5mP38yJC0K7FObsLN/4iTxogvv4ceOIon2BA9oTgIWehxkoVStivdupiL0y2ayYhR18 rFbPUNnJ2RqyYogPCXWKRIzeS89Uoa3gmpwpIwOrHus/3Ra/dAhPctaJht42gXawur8o i55UvHGsGAJkPU6EDEVmNWuQoos4UkpuwAlpcraqWxhocCQ/31u+rF2VPtoyJVVUqKgD daKFkcbLP22BWlpFHLclVxEdLm8xfb7Jb5DwM8BCNn4wX50XeWldPm23fX4etm+QBcrp 3KUw== X-Gm-Message-State: APjAAAXYOtXvoQXlj6tFBplFql5rvmV36xbizVVvkhYQ9dmE+zOsBGlp qpeEhEo+z9DdkAlsMV/7O/E= X-Google-Smtp-Source: APXvYqzdz37t+zMOljYEBXjHhhjDZXN7OU2ari2EU14elOrxsIUs4zQrvOrDF4p7ujKo7MbE+BMxRw== X-Received: by 2002:a63:4101:: with SMTP id o1mr71980018pga.17.1555407417799; Tue, 16 Apr 2019 02:36:57 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id q80sm100644765pfa.66.2019.04.16.02.36.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:36:56 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:36:51 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 24/34] sha1-name.c: remove the_repo from get_oid_basic() Date: Tue, 16 Apr 2019 16:33:31 +0700 Message-Id: <20190416093341.17079-25-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 1cda854f02..d4c135aea8 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -773,8 +773,8 @@ static inline int push_mark(const char *string, int len) static enum get_oid_result get_oid_1(const char *name, int len, struct object_id *oid, unsigned lookup_flags); static int interpret_nth_prior_checkout(struct repository *r, const char *name, int namelen, struct strbuf *buf); -static int get_oid_basic(const char *str, int len, struct object_id *oid, - unsigned int flags) +static int get_oid_basic(struct repository *r, const char *str, int len, + struct object_id *oid, unsigned int flags) { static const char *warn_msg = "refname '%.*s' is ambiguous."; static const char *object_name_msg = N_( @@ -792,9 +792,9 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, int refs_found = 0; int at, reflog_len, nth_prior = 0; - if (len == the_hash_algo->hexsz && !get_oid_hex(str, oid)) { + if (len == r->hash_algo->hexsz && !get_oid_hex(str, oid)) { if (warn_ambiguous_refs && warn_on_object_refname_ambiguity) { - refs_found = dwim_ref(str, len, &tmp_oid, &real_ref); + refs_found = repo_dwim_ref(r, str, len, &tmp_oid, &real_ref); if (refs_found > 0) { warning(warn_msg, len, str); if (advice_object_name_warning) @@ -835,8 +835,8 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, struct strbuf buf = STRBUF_INIT; int detached; - if (interpret_nth_prior_checkout(the_repository, str, len, &buf) > 0) { - detached = (buf.len == the_hash_algo->hexsz && !get_oid_hex(buf.buf, oid)); + if (interpret_nth_prior_checkout(r, str, len, &buf) > 0) { + detached = (buf.len == r->hash_algo->hexsz && !get_oid_hex(buf.buf, oid)); strbuf_release(&buf); if (detached) return 0; @@ -845,19 +845,18 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, if (!len && reflog_len) /* allow "@{...}" to mean the current branch reflog */ - refs_found = dwim_ref("HEAD", 4, oid, &real_ref); + refs_found = repo_dwim_ref(r, "HEAD", 4, oid, &real_ref); else if (reflog_len) - refs_found = dwim_log(str, len, oid, &real_ref); + refs_found = repo_dwim_log(r, str, len, oid, &real_ref); else - refs_found = dwim_ref(str, len, oid, &real_ref); + refs_found = repo_dwim_ref(r, str, len, oid, &real_ref); if (!refs_found) return -1; if (warn_ambiguous_refs && !(flags & GET_OID_QUIETLY) && (refs_found > 1 || - !get_short_oid(the_repository, - str, len, &tmp_oid, GET_OID_QUIETLY))) + !get_short_oid(r, str, len, &tmp_oid, GET_OID_QUIETLY))) warning(warn_msg, len, str); if (reflog_len) { @@ -889,7 +888,7 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, return -1; } } - if (read_ref_at(get_main_ref_store(the_repository), + if (read_ref_at(get_main_ref_store(r), real_ref, flags, at_time, nth, oid, NULL, &co_time, &co_tz, &co_cnt)) { if (!len) { @@ -1159,7 +1158,7 @@ static enum get_oid_result get_oid_1(const char *name, int len, if (!ret) return FOUND; - ret = get_oid_basic(name, len, oid, lookup_flags); + ret = get_oid_basic(the_repository, name, len, oid, lookup_flags); if (!ret) return FOUND; From patchwork Tue Apr 16 09:33:32 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902477 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 21E631390 for ; Tue, 16 Apr 2019 09:37:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 027802881A for ; Tue, 16 Apr 2019 09:37:09 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E7B0A2892C; Tue, 16 Apr 2019 09:37:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 15CE22881A for ; Tue, 16 Apr 2019 09:37:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728847AbfDPJhH (ORCPT ); Tue, 16 Apr 2019 05:37:07 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:45981 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728365AbfDPJhG (ORCPT ); Tue, 16 Apr 2019 05:37:06 -0400 Received: by mail-pf1-f193.google.com with SMTP id e24so10103756pfi.12 for ; Tue, 16 Apr 2019 02:37:06 -0700 (PDT) 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=d9k5NEnCLkNHjDK5ScfED083Q0FXFRF6OWY18X7rJF4=; b=p2W+RVMMwckIrFzLYBkJDUJBg/8XKFPjXpVCqo0AU67gonRgPflLAy5eWeRt2pumCI u4ciRehRbFKp837YMH/mQ6b50xuIGxdx+gBet31VEExo+hprCcq51O3RUKrvkA9hz9tW NQOgzlPNWVKbqeLhfYGdFWThRlpGoHssWstukEUHdOXJoeNo2uUk65bIVlksJJkmBhM0 3nSrf/AQFREI/gwbwHZUfzjIUOge02iip1sTZOG8YvztAuL0fsusl4n0+OXrnzn8E5PI LkQ2+J1FHEKHKdtBsvOAo6yHVB49+8rKdwadx8aUe0fYN+AvMAfNaFm4qYvf96p7P7/0 ailA== 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=d9k5NEnCLkNHjDK5ScfED083Q0FXFRF6OWY18X7rJF4=; b=PxsVijjC8j0nO32JqxpmYAZwl8HcDDpGnui/qW1dMLR6Gh4pA0OnEXueZ0d96OPSfU 2+N3taYOlToYMdvJzeSwY1W4ZUZ1qe158ppOnZpL7Gttb0+CTKlbKCzq5YBadFXIE2si Cpz04VMBbGl9WUm7oNAX2Ef8o4sjCzNYwdncPGYipHfwvNCS7jONkup2pZ9I3LuNucOd aVyvW6IsCqi7OcAvAiDfbuPjqGJDEjt6rHjuZnAPPE5hjeX8xHjo4SC8dvM17FcomuKD E7/1Ir2hOxloiR2G8F7rphJmu7a22FDWhR+m20wM+gBXg1L5avAyM6vL2uzjUErJZrVS 3KSw== X-Gm-Message-State: APjAAAWmY+W/PLedzsU5qFlI5eFnxCZotrOsL0HIIrjaQrmdsTInBwku mZAjrMk1UIAfvEgE3NuQRM8= X-Google-Smtp-Source: APXvYqxBjxSU7ZL30P1CVM1BNmPWBu3RMb8D0OnSfR9nimz1vHtupf1NG66Em8AJtRzqV2ah/fV+sw== X-Received: by 2002:a62:b411:: with SMTP id h17mr63386084pfn.61.1555407425556; Tue, 16 Apr 2019 02:37:05 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id s16sm66382417pgo.69.2019.04.16.02.36.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:37:02 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:36:58 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 25/34] sha1-name.c: remove the_repo from get_oid_1() Date: Tue, 16 Apr 2019 16:33:32 +0700 Message-Id: <20190416093341.17079-26-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP There is a cyclic dependency between one of these functions so they cannot be converted one by one, so all related functions are converted at once. Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 7 +++++-- sha1-name.c | 59 ++++++++++++++++++++++++++++------------------------- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/cache.h b/cache.h index 0cb95c0d4f..2149dc4f56 100644 --- a/cache.h +++ b/cache.h @@ -1491,8 +1491,11 @@ extern void *read_object_with_reference(const struct object_id *oid, unsigned long *size, struct object_id *oid_ret); -extern struct object *peel_to_type(const char *name, int namelen, - struct object *o, enum object_type); +struct object *repo_peel_to_type(struct repository *r, + const char *name, int namelen, + struct object *o, enum object_type); +#define peel_to_type(name, namelen, obj, type) \ + repo_peel_to_type(the_repository, name, namelen, obj, type) enum date_mode_type { DATE_NORMAL = 0, diff --git a/sha1-name.c b/sha1-name.c index d4c135aea8..5741a9f821 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -770,7 +770,7 @@ static inline int push_mark(const char *string, int len) return at_mark(string, len, suffix, ARRAY_SIZE(suffix)); } -static enum get_oid_result get_oid_1(const char *name, int len, struct object_id *oid, unsigned lookup_flags); +static enum get_oid_result get_oid_1(struct repository *r, const char *name, int len, struct object_id *oid, unsigned lookup_flags); static int interpret_nth_prior_checkout(struct repository *r, const char *name, int namelen, struct strbuf *buf); static int get_oid_basic(struct repository *r, const char *str, int len, @@ -921,18 +921,19 @@ static int get_oid_basic(struct repository *r, const char *str, int len, return 0; } -static enum get_oid_result get_parent(const char *name, int len, +static enum get_oid_result get_parent(struct repository *r, + const char *name, int len, struct object_id *result, int idx) { struct object_id oid; - enum get_oid_result ret = get_oid_1(name, len, &oid, + enum get_oid_result ret = get_oid_1(r, name, len, &oid, GET_OID_COMMITTISH); struct commit *commit; struct commit_list *p; if (ret) return ret; - commit = lookup_commit_reference(the_repository, &oid); + commit = lookup_commit_reference(r, &oid); if (parse_commit(commit)) return MISSING_OBJECT; if (!idx) { @@ -950,7 +951,8 @@ static enum get_oid_result get_parent(const char *name, int len, return MISSING_OBJECT; } -static enum get_oid_result get_nth_ancestor(const char *name, int len, +static enum get_oid_result get_nth_ancestor(struct repository *r, + const char *name, int len, struct object_id *result, int generation) { @@ -958,10 +960,10 @@ static enum get_oid_result get_nth_ancestor(const char *name, int len, struct commit *commit; int ret; - ret = get_oid_1(name, len, &oid, GET_OID_COMMITTISH); + ret = get_oid_1(r, name, len, &oid, GET_OID_COMMITTISH); if (ret) return ret; - commit = lookup_commit_reference(the_repository, &oid); + commit = lookup_commit_reference(r, &oid); if (!commit) return MISSING_OBJECT; @@ -974,20 +976,20 @@ static enum get_oid_result get_nth_ancestor(const char *name, int len, return FOUND; } -struct object *peel_to_type(const char *name, int namelen, - struct object *o, enum object_type expected_type) +struct object *repo_peel_to_type(struct repository *r, const char *name, int namelen, + struct object *o, enum object_type expected_type) { if (name && !namelen) namelen = strlen(name); while (1) { - if (!o || (!o->parsed && !parse_object(the_repository, &o->oid))) + if (!o || (!o->parsed && !parse_object(r, &o->oid))) return NULL; if (expected_type == OBJ_ANY || o->type == expected_type) return o; if (o->type == OBJ_TAG) o = ((struct tag*) o)->tagged; else if (o->type == OBJ_COMMIT) - o = &(get_commit_tree(((struct commit *)o))->object); + o = &(repo_get_commit_tree(r, ((struct commit *)o))->object); else { if (name) error("%.*s: expected %s type, but the object " @@ -999,8 +1001,8 @@ struct object *peel_to_type(const char *name, int namelen, } } -static int peel_onion(const char *name, int len, struct object_id *oid, - unsigned lookup_flags) +static int peel_onion(struct repository *r, const char *name, int len, + struct object_id *oid, unsigned lookup_flags) { struct object_id outer; const char *sp; @@ -1050,15 +1052,15 @@ static int peel_onion(const char *name, int len, struct object_id *oid, else if (expected_type == OBJ_TREE) lookup_flags |= GET_OID_TREEISH; - if (get_oid_1(name, sp - name - 2, &outer, lookup_flags)) + if (get_oid_1(r, name, sp - name - 2, &outer, lookup_flags)) return -1; - o = parse_object(the_repository, &outer); + o = parse_object(r, &outer); if (!o) return -1; if (!expected_type) { - o = deref_tag(the_repository, o, name, sp - name - 2); - if (!o || (!o->parsed && !parse_object(the_repository, &o->oid))) + o = deref_tag(r, o, name, sp - name - 2); + if (!o || (!o->parsed && !parse_object(r, &o->oid))) return -1; oidcpy(oid, &o->oid); return 0; @@ -1069,7 +1071,7 @@ static int peel_onion(const char *name, int len, struct object_id *oid, * if we do not get the needed object, we should * barf. */ - o = peel_to_type(name, len, o, expected_type); + o = repo_peel_to_type(r, name, len, o, expected_type); if (!o) return -1; @@ -1089,7 +1091,7 @@ static int peel_onion(const char *name, int len, struct object_id *oid, prefix = xstrndup(sp + 1, name + len - 1 - (sp + 1)); commit_list_insert((struct commit *)o, &list); - ret = get_oid_oneline(the_repository, prefix, oid, list); + ret = get_oid_oneline(r, prefix, oid, list); free(prefix); return ret; } @@ -1120,7 +1122,8 @@ static int get_describe_name(struct repository *r, return -1; } -static enum get_oid_result get_oid_1(const char *name, int len, +static enum get_oid_result get_oid_1(struct repository *r, + const char *name, int len, struct object_id *oid, unsigned lookup_flags) { @@ -1149,25 +1152,25 @@ static enum get_oid_result get_oid_1(const char *name, int len, if (!num && len1 == len - 1) num = 1; if (has_suffix == '^') - return get_parent(name, len1, oid, num); + return get_parent(r, name, len1, oid, num); /* else if (has_suffix == '~') -- goes without saying */ - return get_nth_ancestor(name, len1, oid, num); + return get_nth_ancestor(r, name, len1, oid, num); } - ret = peel_onion(name, len, oid, lookup_flags); + ret = peel_onion(r, name, len, oid, lookup_flags); if (!ret) return FOUND; - ret = get_oid_basic(the_repository, name, len, oid, lookup_flags); + ret = get_oid_basic(r, name, len, oid, lookup_flags); if (!ret) return FOUND; /* It could be describe output that is "SOMETHING-gXXXX" */ - ret = get_describe_name(the_repository, name, len, oid); + ret = get_describe_name(r, name, len, oid); if (!ret) return FOUND; - return get_short_oid(the_repository, name, len, oid, lookup_flags); + return get_short_oid(r, name, len, oid, lookup_flags); } /* @@ -1741,7 +1744,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, memset(oc, 0, sizeof(*oc)); oc->mode = S_IFINVALID; strbuf_init(&oc->symlink_path, 0); - ret = get_oid_1(name, namelen, oid, flags); + ret = get_oid_1(repo, name, namelen, oid, flags); if (!ret) return ret; /* @@ -1822,7 +1825,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, sub_flags &= ~GET_OID_DISAMBIGUATORS; sub_flags |= GET_OID_TREEISH; - if (!get_oid_1(name, len, &tree_oid, sub_flags)) { + if (!get_oid_1(repo, name, len, &tree_oid, sub_flags)) { const char *filename = cp+1; char *new_filename = NULL; From patchwork Tue Apr 16 09:33:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902479 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4D1341390 for ; Tue, 16 Apr 2019 09:37:13 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 353AE2881A for ; Tue, 16 Apr 2019 09:37:13 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 29CFF2892C; Tue, 16 Apr 2019 09:37:13 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C46C62881A for ; Tue, 16 Apr 2019 09:37:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728879AbfDPJhL (ORCPT ); Tue, 16 Apr 2019 05:37:11 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:33053 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728365AbfDPJhL (ORCPT ); Tue, 16 Apr 2019 05:37:11 -0400 Received: by mail-pg1-f196.google.com with SMTP id k19so10073829pgh.0 for ; Tue, 16 Apr 2019 02:37:11 -0700 (PDT) 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=UxZ+mfDQii/CnF+OrsFhfKo8Z0vssVnPPitcIe3MPKU=; b=u4i0TCiSAJr8AKX62lXwjNq+1jtn8ClCPqEabhVr/IbJRozrC8nHyma97CMsrP5aEr 5PWGIKoMQMkAbkM/D2X9orzQfGt5/0yg2j257UOzTiRy9hjon6weiu67QNl9FNnLOtuh wQ5yV9eg1jwPg5jblo4wlmzRnD6ZWDg8PzPiO9SnWP/ySF6vhpZmWbNl/ZncGDrDG29/ ymnKLdKRqNCPUiTqKSd2P0NayoUF8rwqRqVBOqZcxrTyz1tcqIIjsmqjpo05dycAdEWj MNNhPaChi3j5yrspCDCuJ18YC8UA5852ZiCSLwjHZvS9NJv/yARqjhbUIxFwBb0V9jJF hUsQ== 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=UxZ+mfDQii/CnF+OrsFhfKo8Z0vssVnPPitcIe3MPKU=; b=RTiR6mGGZVrAol8aYzf9D8EzygoAJp5p3Bpn8MOK9T01wfmkWZl8rpf/8wVwSB0UHE eqhm7r/nFbamf4oPyvhUnV3/M++dDXeQddKDle3HccVEG6Inf87Uts5bOd89bv0e2wp5 nFbbznqZy/WyAPkPzXCg4k1ka2N7iIAIb1I1r1ZKy181EPI4igm0tY3HRblaK8prYOA3 Svdl3YrFlkTp2hUToaM2uydq3PcHjWVZ912dapoCA3ktLNBycu0yewDNVy6mJ9HYfayn NlWLjFmkx7Z3ktqHM21MPEctwMiXkEw4SicH5BRu3k5pzUnuBmBhshuOyTH5DSJS9kSV XE9w== X-Gm-Message-State: APjAAAU3AIrpZ4sR3p9IpTMr+Hyfv9ZIkxMPN5vdo7VaJ8CjzQUMavUy Z3+ShyYG4/kMnSek7+4gyNw= X-Google-Smtp-Source: APXvYqxvW55eDwMdwA2bopCk8IbXsRPFTHvIA3io68zALtCcaop+Yfgos9IIeinUccRy9o56BXRvYw== X-Received: by 2002:a62:1194:: with SMTP id 20mr679024pfr.224.1555407430716; Tue, 16 Apr 2019 02:37:10 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id l74sm91374855pfi.174.2019.04.16.02.37.07 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:37:09 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:37:05 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 26/34] sha1-name.c: remove the_repo from handle_one_ref() Date: Tue, 16 Apr 2019 16:33:33 +0700 Message-Id: <20190416093341.17079-27-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 5741a9f821..d9050776dd 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1189,15 +1189,21 @@ static enum get_oid_result get_oid_1(struct repository *r, /* Remember to update object flag allocation in object.h */ #define ONELINE_SEEN (1u<<20) +struct handle_one_ref_cb { + struct repository *repo; + struct commit_list **list; +}; + static int handle_one_ref(const char *path, const struct object_id *oid, int flag, void *cb_data) { - struct commit_list **list = cb_data; - struct object *object = parse_object(the_repository, oid); + struct handle_one_ref_cb *cb = cb_data; + struct commit_list **list = cb->list; + struct object *object = parse_object(cb->repo, oid); if (!object) return 0; if (object->type == OBJ_TAG) { - object = deref_tag(the_repository, object, path, + object = deref_tag(cb->repo, object, path, strlen(path)); if (!object) return 0; @@ -1760,10 +1766,13 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, char *new_path = NULL; int pos; if (!only_to_die && namelen > 2 && name[1] == '/') { + struct handle_one_ref_cb cb; struct commit_list *list = NULL; - for_each_ref(handle_one_ref, &list); - head_ref(handle_one_ref, &list); + cb.repo = repo; + cb.list = &list; + refs_for_each_ref(repo->refs, handle_one_ref, &cb); + refs_head_ref(repo->refs, handle_one_ref, &cb); commit_list_sort_by_date(&list); return get_oid_oneline(repo, name + 2, oid, list); } From patchwork Tue Apr 16 09:33:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902481 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 12CBB161F for ; Tue, 16 Apr 2019 09:37:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EC5362881A for ; Tue, 16 Apr 2019 09:37:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E0DB52892C; Tue, 16 Apr 2019 09:37:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CF5202881A for ; Tue, 16 Apr 2019 09:37:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729050AbfDPJhU (ORCPT ); Tue, 16 Apr 2019 05:37:20 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:35621 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728365AbfDPJhT (ORCPT ); Tue, 16 Apr 2019 05:37:19 -0400 Received: by mail-pg1-f194.google.com with SMTP id g8so10076608pgf.2 for ; Tue, 16 Apr 2019 02:37:19 -0700 (PDT) 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=KPqzv1444yrjMrDhPL+txtZC21OIjNCqHratO1l6F+4=; b=ANjUnfr7ud+NwB8emCHlXrTJo8R0Fw8Py+yZoI+sFjhYDq0js7NV+Rg+RTrjHtUVHs 0bN1tdgkcbhl/L/wh7x0MyoYhZ9FYr0gN7DwxbtlI+vnBnf3tm9DV1zW0kCjPbmuQyrq zaCCJqyZvMYRyBIhGmD0WE+DJU/01hMTZVdDkEYIRUc/ZjW9JR1uwEv6hKvahaZLMSup AyAocgsAuAXcLlbOeBWNSdTrOmVhxkVq/ewMFhOGgwva0RWc+o9tg3Cj1YUxphHsdnJT nRuAoNoFyes5PeNVGvfG22TEswSB/wwYHSHa4Fo0mC+BcL3s9Bwz/hUfqLIgsjVnS/Sn pe7Q== 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=KPqzv1444yrjMrDhPL+txtZC21OIjNCqHratO1l6F+4=; b=mdfbENfY6Fok+zHhanrlZCKSFwN+X4mRiAz9Yx2vFVSuSzDuGv22vO48T8VRoGsASB Dxv1nztKuaBz306NLBVR6rlwNwuEYc1/GoV31xR1ewdbSgNFldg2g/873SnSqdD0pm0J ZKfY2SR+Ul4njzu7aivrmViMfMGLg79g0zyuSwvJo3sKNUqttr6YEhWVrN8nM8fFc5/k voKhVKx+Ld+2dokGxKm1CaBJl9xmLSBm3uhR3TRPpQa6cH6y4w3r712NlH/Sjc+TSHLm nLTTcTA+gKuM8/OecBt1N4Tr/umEhL7g40AhaYg/ox4UYPqjlI2UuCpAvjebVE1xK4pp It/A== X-Gm-Message-State: APjAAAWk1wJ72uvvIiFs74437xfu/+wKjVGdQvN5pq7jcN9/meS/BVz+ J47nDqVu1jk24Qwr5yoVrtixwS7j X-Google-Smtp-Source: APXvYqyuGL9HVmeTZrz6/S6CM3B3k9Si5dtk+Ji0eSiBG9qgBpkyQph0ULpwMtswOH8wwXR6H2Pnpg== X-Received: by 2002:a62:2fc7:: with SMTP id v190mr21242795pfv.10.1555407438596; Tue, 16 Apr 2019 02:37:18 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id j4sm28175830pgi.71.2019.04.16.02.37.12 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:37:15 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:37:10 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 27/34] sha1-name.c: remove the_repo from diagnose_invalid_index_path() Date: Tue, 16 Apr 2019 16:33:34 +0700 Message-Id: <20190416093341.17079-28-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- dir.c | 8 ++++++++ dir.h | 4 +++- sha1-name.c | 7 ++++--- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/dir.c b/dir.c index b2cabadf25..e6d97343f4 100644 --- a/dir.c +++ b/dir.c @@ -2315,6 +2315,14 @@ int file_exists(const char *f) return lstat(f, &sb) == 0; } +int repo_file_exists(struct repository *repo, const char *path) +{ + if (repo != the_repository) + BUG("do not know how to check file existence in arbitrary repo"); + + return file_exists(path); +} + static int cmp_icase(char a, char b) { if (a == b) diff --git a/dir.h b/dir.h index e3ec26143d..47c5409ced 100644 --- a/dir.h +++ b/dir.h @@ -269,7 +269,9 @@ extern void add_exclude(const char *string, const char *base, int baselen, struct exclude_list *el, int srcpos); extern void clear_exclude_list(struct exclude_list *el); extern void clear_directory(struct dir_struct *dir); -extern int file_exists(const char *); + +int repo_file_exists(struct repository *repo, const char *path); +int file_exists(const char *); extern int is_inside_dir(const char *dir); extern int dir_inside_of(const char *subdir, const char *dir); diff --git a/sha1-name.c b/sha1-name.c index d9050776dd..6caf3f4e3a 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1664,11 +1664,12 @@ static void diagnose_invalid_oid_path(const char *prefix, } /* Must be called only when :stage:filename doesn't exist. */ -static void diagnose_invalid_index_path(struct index_state *istate, +static void diagnose_invalid_index_path(struct repository *r, int stage, const char *prefix, const char *filename) { + struct index_state *istate = r->index; const struct cache_entry *ce; int pos; unsigned namelen = strlen(filename); @@ -1708,7 +1709,7 @@ static void diagnose_invalid_index_path(struct index_state *istate, ce_stage(ce), filename); } - if (file_exists(filename)) + if (repo_file_exists(r, filename)) die("Path '%s' exists on disk, but not in the index.", filename); if (is_missing_file_error(errno)) die("Path '%s' does not exist (neither on disk nor in the index).", @@ -1814,7 +1815,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, pos++; } if (only_to_die && name[1] && name[1] != '/') - diagnose_invalid_index_path(repo->index, stage, prefix, cp); + diagnose_invalid_index_path(repo, stage, prefix, cp); free(new_path); return -1; } From patchwork Tue Apr 16 09:33:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902483 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 0975C1390 for ; Tue, 16 Apr 2019 09:37:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E119A2892B for ; Tue, 16 Apr 2019 09:37:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D5C0628931; Tue, 16 Apr 2019 09:37:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C2BAB2892B for ; Tue, 16 Apr 2019 09:37:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729055AbfDPJhY (ORCPT ); Tue, 16 Apr 2019 05:37:24 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:45385 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728365AbfDPJhY (ORCPT ); Tue, 16 Apr 2019 05:37:24 -0400 Received: by mail-pg1-f193.google.com with SMTP id y3so10042367pgk.12 for ; Tue, 16 Apr 2019 02:37:24 -0700 (PDT) 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=g3Haq9BL+2QSQ6IXg1M6Biu3LzvW3KM0b+B/hUTQS44=; b=h9K5JMVtBo5USB6E9bbUqKW3sPqV1ZPB6FavaHF27OVo2yqddxiaHOhndQ7OM6uWEq YHfRODRKm4rkE41J7OuukGDtkt+IV2gGm4JnvM0hPbriDDqyUY1bnnFoprM6qZJcZB6r 1qM03tvvEyqOydZHesE0ozaMTVX7E2ibxt6dUBFDcjpd168PJxIHs0jumqqoCQeQ1HDn 6rR/B5cWpcJE1l34VP6cQKxceq7P5bTZ+lqfogxYAB7VYkz3pe5sw2jCYPiqinPT4GEM K7HOiYStuqOA8U6iOjKgWDiFwrHep5q+FnJOQomO05Wi4GU6bZm7az4Id38F1Qza1ie+ 4qJQ== 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=g3Haq9BL+2QSQ6IXg1M6Biu3LzvW3KM0b+B/hUTQS44=; b=otSp4/0TKgn701briqKv3pfjemKY4BfKj8Xu72MJxGJyY62Bb9G9URnsHd5h17aE/3 k5MNY5FDJPoe1pY+jYRRtdJiVFOT9bnqe6ilnwx9gjRBiMntV/NVCF7SNWbMLWDvN5kH bXmTfr7JgTcSAiqqkMtA7xKA7eKbAagftb3eDl8AOJ/kawJLLXfOkMEI2QRxXrLZLO2P foUCsOiDpSi50i14ogkq/4We8uU//cN97OxuOeG2y06RJZ9xh717DBJBcpS9JY9wonq2 /aoNHza2aQB1RIRJ5NCN/Fjh1zHj8A2b2uR1T/1Y208rqSZu5B/1S9+ANbe0uAvEaYLR IR6Q== X-Gm-Message-State: APjAAAUYxZyIMcR7l5eGTLOcBtD2z2QMXu4x2LziByqkcByfDizYpXi5 /4B/HAgdcF9yK2kUVltMr6W9Jsrv X-Google-Smtp-Source: APXvYqwnYHfbUFm1CXDH29LE//Pt5QxFqrPoPs90HQpL20jr3Yf57iQCi+XNbp3xMEiIYHXmhq6XYw== X-Received: by 2002:a62:1647:: with SMTP id 68mr19399896pfw.113.1555407443708; Tue, 16 Apr 2019 02:37:23 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id l74sm91377966pfi.174.2019.04.16.02.37.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:37:22 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:37:18 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 28/34] sha1-name.c: remove the_repo from resolve_relative_path() Date: Tue, 16 Apr 2019 16:33:35 +0700 Message-Id: <20190416093341.17079-29-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP "remove" is not entirely correct. But at least the function is aware that if the given repo is not the_repository, then $CWD and is_inside_work_tree() means nothing. Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 6caf3f4e3a..6b53ea2eeb 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1719,12 +1719,12 @@ static void diagnose_invalid_index_path(struct repository *r, } -static char *resolve_relative_path(const char *rel) +static char *resolve_relative_path(struct repository *r, const char *rel) { if (!starts_with(rel, "./") && !starts_with(rel, "../")) return NULL; - if (!is_inside_work_tree()) + if (r != the_repository || !is_inside_work_tree()) die("relative path syntax can't be used outside working tree."); /* die() inside prefix_path() if resolved path is outside worktree */ @@ -1785,7 +1785,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, stage = name[1] - '0'; cp = name + 3; } - new_path = resolve_relative_path(cp); + new_path = resolve_relative_path(repo, cp); if (!new_path) { namelen = namelen - (cp - name); } else { @@ -1839,7 +1839,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, const char *filename = cp+1; char *new_filename = NULL; - new_filename = resolve_relative_path(filename); + new_filename = resolve_relative_path(repo, filename); if (new_filename) filename = new_filename; if (flags & GET_OID_FOLLOW_SYMLINKS) { From patchwork Tue Apr 16 09:33:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902485 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 731DF161F for ; Tue, 16 Apr 2019 09:37:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5A1D12881A for ; Tue, 16 Apr 2019 09:37:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4EA492892C; Tue, 16 Apr 2019 09:37:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F01EB2881A for ; Tue, 16 Apr 2019 09:37:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729058AbfDPJh3 (ORCPT ); Tue, 16 Apr 2019 05:37:29 -0400 Received: from mail-pl1-f195.google.com ([209.85.214.195]:44421 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728268AbfDPJh3 (ORCPT ); Tue, 16 Apr 2019 05:37:29 -0400 Received: by mail-pl1-f195.google.com with SMTP id g12so10031800pll.11 for ; Tue, 16 Apr 2019 02:37:29 -0700 (PDT) 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=azgoSFZCwzgvXepH0ecGgtBNHsBW2kXjKepiOpIl6pE=; b=Arzd7hN8qokBxOXJBAk/PDEgFEvfs8GwF6yQcv/lws9yHxCtAJbRqwtp0wNLM9dVoB FEL26qwbF1lPKZpPe85Rf//OF/piEfCeR7p5yDs6W+N3RK9MvpA7jUB3deUgKryiXuoK rWa2daFiRBOGXjJ6g0aXAZgnUkoti0sbZmz2BHz/E+mnLgmrUXfduQecV+ylrK4E64nO 80fRq3Sv1LPfVbAn/xNnwZczuvxqNMVTBbcXW6pGpdbAsF0+hoGBB6yrMLMceOqtLtEf 08fPr2z8qog0ppxih3bUTAHPyCiNMWgluO3kz2vUfRVn0f6HNLyd/LDW6jmZTO2mA65O MZzA== 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=azgoSFZCwzgvXepH0ecGgtBNHsBW2kXjKepiOpIl6pE=; b=XjlG494A2N09r3/MODss/55rxt2Xgj+VSKIqRTLgSmXg2nnJG18rMb1Q1+i7Jfay4h gU1d9q551Ce+MBD1Fmwrz+xetIySowpPm/at9HKj7H8yfJ1Y1LcEF8/wd9xdq98IqDM3 sRe058N14FrETBS9H6H43HctEnUnQ5OUTLna5IrnuvwT47JZsRSWDOjsOciaTVMcHrPf +JZmKmdo40u9PGYshJyLEsQVMlIf2mcl4iwTmGdJVI1VzX4PnZKvmTMcOtqfW6v68hnJ 5gcwAgxoUVVqSgho5tAy1sAI/1FxO6L0yWXVZ7Pywld/S0A4QcVX7+0xgbi2pZ3TXTlF wwBw== X-Gm-Message-State: APjAAAWz57kXYdtALk5hnWy5iCn+K2jeqa24hR3pLF2vR3rkrpkLbEh/ iLnVf3LanqpH6somMMDnklE= X-Google-Smtp-Source: APXvYqy9Tqwd4zWSfpInJMsN+uHKODnvP8C6i5BdWa8jS3l0kAzlXRSU7AE8nT7Ig0IJH8fzRwUiGw== X-Received: by 2002:a17:902:ab91:: with SMTP id f17mr16687134plr.151.1555407449010; Tue, 16 Apr 2019 02:37:29 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id z14sm77990160pfn.161.2019.04.16.02.37.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:37:28 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:37:23 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 29/34] sha1-name.c: remove the_repo from get_oid_with_context_1() Date: Tue, 16 Apr 2019 16:33:36 +0700 Message-Id: <20190416093341.17079-30-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sha1-name.c b/sha1-name.c index 6b53ea2eeb..64a50d1291 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -12,6 +12,7 @@ #include "packfile.h" #include "object-store.h" #include "repository.h" +#include "submodule.h" #include "midx.h" #include "commit-reach.h" @@ -1797,7 +1798,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, oc->path = xstrdup(cp); if (!repo->index->cache) - repo_read_index(the_repository); + repo_read_index(repo); pos = index_name_pos(repo->index, cp, namelen); if (pos < 0) pos = -pos - 1; @@ -1842,6 +1843,14 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, new_filename = resolve_relative_path(repo, filename); if (new_filename) filename = new_filename; + /* + * NEEDSWORK: Eventually get_tree_entry*() should + * learn to take struct repository directly and we + * would not need to inject submodule odb to the + * in-core odb. + */ + if (repo != the_repository) + add_to_alternates_memory(repo->objects->odb->path); if (flags & GET_OID_FOLLOW_SYMLINKS) { ret = get_tree_entry_follow_symlinks(&tree_oid, filename, oid, &oc->symlink_path, From patchwork Tue Apr 16 09:33:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902487 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C9992161F for ; Tue, 16 Apr 2019 09:37:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AAE6A2881A for ; Tue, 16 Apr 2019 09:37:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9F8432892C; Tue, 16 Apr 2019 09:37:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4B5302881A for ; Tue, 16 Apr 2019 09:37:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728827AbfDPJhf (ORCPT ); Tue, 16 Apr 2019 05:37:35 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:34199 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728268AbfDPJhf (ORCPT ); Tue, 16 Apr 2019 05:37:35 -0400 Received: by mail-pf1-f196.google.com with SMTP id b3so10132465pfd.1 for ; Tue, 16 Apr 2019 02:37:34 -0700 (PDT) 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=mO9v1cGsqvkyzXV++nfuBYrqsEBe8PasqJK716GOFYU=; b=W5mbbuI4A21tUboNZv/I0nxF5cPc/qF/FFwmSd6QY/WDyPJ0xWVMP/kVHgCD8i3m7t 45J2k4kaQ1lOyLvvh0j93WvAnCZQlx8mFnAxDJfq/gcNok0DtsNpESF+r25ROtOrBIiM N/5+K2unlcO3W5FM73h5oeXXoOLX+nptVqRH75APCMrba+DmJc3MOCzTXBQwJjkXs0ni EMmC5TVzCMyAQwlJiQuqK/fR6dW+dM/eKv/Lmgh75pAvFqYqH8gjiIYJ9zFE6hlxEKSC v+LcPznzBqOCrFGDgZsZOh5GpFjU5Ta6qDNpczi1Iqp5QT/Pf+yUMmRC+EodYgE1eWpR JI5g== 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=mO9v1cGsqvkyzXV++nfuBYrqsEBe8PasqJK716GOFYU=; b=sUeZPugOJKhM2wUk8wWaHKLmZZig6fKLcuJss0OwwnitbE1tArJZyItYceNtkW5dJw zCJk2gkn9wugSRln/xm5+V8Wi01if+Ju0c1vbAjJMHYQWVe0+ZRRthxJW3kdcCqL6d9x 5ZAIZQdgPeTCkpY/efhkUK494APQMuZynGD39gRUyuvJdbidn02aQYOI+w+UxPZ7eIfI g/z/HVJ4sl1ZNxRN8k2tZUyBwxfAUTABR2FJUHbuHjHHUEtcGVMYOEVweWppTEZPN4ad iC8oZMiYxZ2vFwXWAkJ7inEh5/6JDUllnFK7GkVD6MCmJyn8IiftoWVesthamKoXe2iI v0/A== X-Gm-Message-State: APjAAAValgeO3oQwlIhkweeAZtgtqXvktFbyctCUE4yFMmmg6z8XVPS4 UPKCX1YbMXlIPYrkvzhPWjh5RnYV X-Google-Smtp-Source: APXvYqwDDIKhdLZ7RCOnS5o1AbwSZKWAbaC2yIJUXi1g+Ls/fxYw1B8bk0IFj07aPboX2zyvfluhkA== X-Received: by 2002:a65:408b:: with SMTP id t11mr71258485pgp.372.1555407454432; Tue, 16 Apr 2019 02:37:34 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id q74sm93141705pfc.111.2019.04.16.02.37.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:37:33 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:37:29 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 30/34] sha1-name.c: add repo_get_oid() Date: Tue, 16 Apr 2019 16:33:37 +0700 Message-Id: <20190416093341.17079-31-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 3 ++- sha1-name.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cache.h b/cache.h index 2149dc4f56..f6e87194d0 100644 --- a/cache.h +++ b/cache.h @@ -1380,7 +1380,8 @@ enum get_oid_result { */ }; -extern int get_oid(const char *str, struct object_id *oid); +int repo_get_oid(struct repository *r, const char *str, struct object_id *oid); +#define get_oid(str, oid) repo_get_oid(the_repository, str, oid) extern int get_oid_commit(const char *str, struct object_id *oid); extern int get_oid_committish(const char *str, struct object_id *oid); extern int get_oid_tree(const char *str, struct object_id *oid); diff --git a/sha1-name.c b/sha1-name.c index 64a50d1291..953df0d692 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1573,10 +1573,10 @@ int strbuf_check_branch_ref(struct strbuf *sb, const char *name) * This is like "get_oid_basic()", except it allows "object ID expressions", * notably "xyz^" for "parent of xyz" */ -int get_oid(const char *name, struct object_id *oid) +int repo_get_oid(struct repository *r, const char *name, struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, name, 0, oid, &unused); + return get_oid_with_context(r, name, 0, oid, &unused); } From patchwork Tue Apr 16 09:33:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902489 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4D5771390 for ; Tue, 16 Apr 2019 09:37:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 305BE2881A for ; Tue, 16 Apr 2019 09:37:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 24EAF2892C; Tue, 16 Apr 2019 09:37:42 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ABD962881A for ; Tue, 16 Apr 2019 09:37:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728881AbfDPJhk (ORCPT ); Tue, 16 Apr 2019 05:37:40 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:35784 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728268AbfDPJhk (ORCPT ); Tue, 16 Apr 2019 05:37:40 -0400 Received: by mail-pl1-f193.google.com with SMTP id w24so10063779plp.2 for ; Tue, 16 Apr 2019 02:37:40 -0700 (PDT) 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=vK/4um+iuE+J1+VBEHvy0bgxNvWT3iwFnGY4zfyG7WE=; b=Kfs3Wt6p6UH52DXvUFRjm7KJXf56LkSDjGn1+UNulCfPUShUHWS9Po+1hAtVoGL5OH 1H/s+sKOBauJXEC2V4Vxw2MmcC47+PdEFo4Q7bfbOzVpTZ0dwOO9CxEFTw9LJ4Fo3NQa A4wgfSFOEncOdK0cOeBEY6wfFaCaokQ00zHFSb6o9mkU+qd3eVXCAT4/JGSceo73QyXE 9KjcO/ECY0wufpU8qoYOAiugNyFXdsnFM8r9R3FYKJogSR+aiPO2sgrgOdiV5RuCgafb cAE9x2wJyfBsPxzJRHiWQTpZRWoeFIwAKbvuuGknaxBO633eDV0WvmmyRvVZmH3cXUVj EjlQ== 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=vK/4um+iuE+J1+VBEHvy0bgxNvWT3iwFnGY4zfyG7WE=; b=Dzye93X5X1dlgVgRr+DOCS1e3vLLQIMg2+CHWlSSgLJ24XFyAHLq6YUsS3UnDy1TC9 5knWasizYBsx1nEj3HbqXR8lUq1fES4S2eoUiuFbYMihq42OUcEwIEobFk/8U5EyC3Yl Y0/sIbu7hgBfAZD/Ya8xirLicmsg9k5/YknR8rEDfxxSZ5PXo1DI7fAE6Ik3nSt2KpEu Dhu+K9XBLQ02d9F8ILMKUg48waWaG3ahqhR9eC0vD4ON7zAm576b2UI85E+mhvQsjVgr SLQhV6e4kEbO2W9ZsUcdrnFXW6Ld6ss1sidQyt8FebB/ZefiU7kKSNNVYqqI1ZOJeNu5 W53w== X-Gm-Message-State: APjAAAVu45fKoqiZmL6jYLAN+6OJ8OIJdUA40CF611LGwsU8Avnk2qOe xekuVoh7nUJr8LZRbcjoKbf9sH0s X-Google-Smtp-Source: APXvYqygiiMBrrlUf6D8XJADXDpcoDvF6ufbToEAxWAF/KBD0h86zo/2DwwVl0LLbraTY06dDwxx2A== X-Received: by 2002:a17:902:396a:: with SMTP id e39mr80776355plg.220.1555407459768; Tue, 16 Apr 2019 02:37:39 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id n65sm147689222pfb.160.2019.04.16.02.37.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:37:39 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:37:34 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 31/34] submodule-config.c: use repo_get_oid for reading .gitmodules Date: Tue, 16 Apr 2019 16:33:38 +0700 Message-Id: <20190416093341.17079-32-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Since 76e9bdc437 (submodule: support reading .gitmodules when it's not in the working tree - 2018-10-25), every time you do git grep --recurse-submodules you are likely to see one warning line per submodule (unless all those submodules also have submodules). On a superproject with plenty of submodules (I've seen one with 67) this is really annoying. The warning was there because we could not resolve extended SHA-1 syntax on a submodule. We can now. Make use of the new API and get rid of the warning. It would be even better if config_with_options() supports multiple repositories too. But one step at a time. Signed-off-by: Nguyễn Thái Ngọc Duy --- submodule-config.c | 20 +++++++------------- t/t7814-grep-recurse-submodules.sh | 6 +----- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/submodule-config.c b/submodule-config.c index 66653e86b9..4264ee216f 100644 --- a/submodule-config.c +++ b/submodule-config.c @@ -625,23 +625,16 @@ static void config_from_gitmodules(config_fn_t fn, struct repository *repo, void const struct config_options opts = { 0 }; struct object_id oid; char *file; + char *oidstr = NULL; file = repo_worktree_path(repo, GITMODULES_FILE); if (file_exists(file)) { config_source.file = file; - } else if (repo->submodule_prefix) { - /* - * When get_oid and config_with_options, used below, - * become able to work on a specific repository, this - * warning branch can be removed. - */ - warning("nested submodules without %s in the working tree are not supported yet", - GITMODULES_FILE); - goto out; - } else if (get_oid(GITMODULES_INDEX, &oid) >= 0) { - config_source.blob = GITMODULES_INDEX; - } else if (get_oid(GITMODULES_HEAD, &oid) >= 0) { - config_source.blob = GITMODULES_HEAD; + } else if (repo_get_oid(repo, GITMODULES_INDEX, &oid) >= 0 || + repo_get_oid(repo, GITMODULES_HEAD, &oid) >= 0) { + config_source.blob = oidstr = xstrdup(oid_to_hex(&oid)); + if (repo != the_repository) + add_to_alternates_memory(repo->objects->odb->path); } else { goto out; } @@ -649,6 +642,7 @@ static void config_from_gitmodules(config_fn_t fn, struct repository *repo, void config_with_options(fn, data, &config_source, &opts); out: + free(oidstr); free(file); } } diff --git a/t/t7814-grep-recurse-submodules.sh b/t/t7814-grep-recurse-submodules.sh index fa475d52fa..134a694516 100755 --- a/t/t7814-grep-recurse-submodules.sh +++ b/t/t7814-grep-recurse-submodules.sh @@ -380,11 +380,7 @@ test_expect_success 'grep --recurse-submodules should pass the pattern type alon fi ' -# Recursing down into nested submodules which do not have .gitmodules in their -# working tree does not work yet. This is because config_from_gitmodules() -# uses get_oid() and the latter is still not able to get objects from an -# arbitrary repository (the nested submodule, in this case). -test_expect_failure 'grep --recurse-submodules with submodules without .gitmodules in the working tree' ' +test_expect_success 'grep --recurse-submodules with submodules without .gitmodules in the working tree' ' test_when_finished "git -C submodule checkout .gitmodules" && rm submodule/.gitmodules && git grep --recurse-submodules -e "(.|.)[\d]" >actual && From patchwork Tue Apr 16 09:33:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902491 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8B4F7161F for ; Tue, 16 Apr 2019 09:37:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6E54A2892C for ; Tue, 16 Apr 2019 09:37:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5FC9928936; Tue, 16 Apr 2019 09:37:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EC5A72892C for ; Tue, 16 Apr 2019 09:37:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728910AbfDPJhp (ORCPT ); Tue, 16 Apr 2019 05:37:45 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:36191 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727087AbfDPJhp (ORCPT ); Tue, 16 Apr 2019 05:37:45 -0400 Received: by mail-pf1-f195.google.com with SMTP id z5so10125818pfn.3 for ; Tue, 16 Apr 2019 02:37:45 -0700 (PDT) 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=Va64poPpWA16JtjiXIMrc3aVLhyLbIhGt6IpUiZ9XVM=; b=frLlv+f7JT87fbRn19Unyq4pKIQGdhT8Vl45JXqlxSsYAtq6SCQFY5g7f+4U+Icv6J lU8gc/4qrHfZ1usdAge3X1bMfIWhTcR4q2FGEVmjIg5zGrxjebTZVLs5n8k8SVMwE9Dc hJYpTUgOzAHZE+YCAnBBvKvT+g6uxw9TWZkYOLJ71mBauv2EH+W14djo7Qquf5ywlbqF 9b2CEeRKXYwyeTU6URZugYpwgmYhDU5+oYpxtyHvPYatmiVnYVK+TiYxV1oxPVSiZ7wK hSCLo1GlPQaSBJC78dIM3yxMGuXet6Do1XmhtOq3uvJdig7ULY1Eaw4G2H7qyGxOgCOB Zgdg== 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=Va64poPpWA16JtjiXIMrc3aVLhyLbIhGt6IpUiZ9XVM=; b=isvKVJckD5pJIkqST45UGUg/lrIkRa98NG7TKWyCJqpYoJzhSff4/uMhYsQYzgh3Al hNHVX1jJLWw37RKs9s9F9MhkpAXouyjpMnZYrG6cuRusdxukV3ekcL9oAxq7HNlveqoB 3bnR1yD+EJ4A5PtFM6PkCSRSW5N7NpbohneT3jaZkyGsV5IYcu0OvEcg/8rw8wH3i+CH VcmNNd10kYOHVFzw9ZZsPuBZHC/5Z0TqWtBmaBdiXXQgu6eeLw2n6SPr9dneeVIVl8ul J/DItqKFYTs0SuLH0gP/69s8sPaCRnHZMs1dL2rHS5iZvMf1r0e+JxNBIENGkpH+nXAy djqQ== X-Gm-Message-State: APjAAAVqpUoB77J3ckFUAe+KGob5USAhg2zKfw6aJFczPmIx5n7rxXP5 JRhaIiO/0DunW1EdUdaz0po= X-Google-Smtp-Source: APXvYqz7hbtvLw+zKiKAdgnwLFIfKVpq5bOt/PAakUvpIG1iPJXLje8Rps/C3ZPuWQqEfvuHFuHgcQ== X-Received: by 2002:a62:ab12:: with SMTP id p18mr80710075pff.216.1555407464903; Tue, 16 Apr 2019 02:37:44 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id c25sm73940890pfo.69.2019.04.16.02.37.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:37:44 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:37:40 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 32/34] sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name Date: Tue, 16 Apr 2019 16:33:39 +0700 Message-Id: <20190416093341.17079-33-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 4 +++- setup.c | 7 ++++--- sha1-name.c | 6 ++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/cache.h b/cache.h index f6e87194d0..3718b3db8a 100644 --- a/cache.h +++ b/cache.h @@ -1387,7 +1387,9 @@ extern int get_oid_committish(const char *str, struct object_id *oid); extern int get_oid_tree(const char *str, struct object_id *oid); extern int get_oid_treeish(const char *str, struct object_id *oid); extern int get_oid_blob(const char *str, struct object_id *oid); -extern void maybe_die_on_misspelt_object_name(const char *name, const char *prefix); +void maybe_die_on_misspelt_object_name(struct repository *repo, + const char *name, + const char *prefix); extern enum get_oid_result get_oid_with_context(struct repository *repo, const char *str, unsigned flags, struct object_id *oid, struct object_context *oc); diff --git a/setup.c b/setup.c index d0c958c3b2..8dcb4631f7 100644 --- a/setup.c +++ b/setup.c @@ -164,7 +164,8 @@ int check_filename(const char *prefix, const char *arg) die_errno(_("failed to stat '%s'"), arg); } -static void NORETURN die_verify_filename(const char *prefix, +static void NORETURN die_verify_filename(struct repository *r, + const char *prefix, const char *arg, int diagnose_misspelt_rev) { @@ -179,7 +180,7 @@ static void NORETURN die_verify_filename(const char *prefix, * let maybe_die_on_misspelt_object_name() even trigger. */ if (!(arg[0] == ':' && !isalnum(arg[1]))) - maybe_die_on_misspelt_object_name(arg, prefix); + maybe_die_on_misspelt_object_name(r, arg, prefix); /* ... or fall back the most general message. */ die(_("ambiguous argument '%s': unknown revision or path not in the working tree.\n" @@ -234,7 +235,7 @@ void verify_filename(const char *prefix, die(_("option '%s' must come before non-option arguments"), arg); if (looks_like_pathspec(arg) || check_filename(prefix, arg)) return; - die_verify_filename(prefix, arg, diagnose_misspelt_rev); + die_verify_filename(the_repository, prefix, arg, diagnose_misspelt_rev); } /* diff --git a/sha1-name.c b/sha1-name.c index 953df0d692..b94d381bef 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1885,11 +1885,13 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, * exist in 'HEAD'" when given "HEAD:doc", or it may return in which case * you have a chance to diagnose the error further. */ -void maybe_die_on_misspelt_object_name(const char *name, const char *prefix) +void maybe_die_on_misspelt_object_name(struct repository *r, + const char *name, + const char *prefix) { struct object_context oc; struct object_id oid; - get_oid_with_context_1(the_repository, name, GET_OID_ONLY_TO_DIE, + get_oid_with_context_1(r, name, GET_OID_ONLY_TO_DIE, prefix, &oid, &oc); } From patchwork Tue Apr 16 09:33:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902493 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 2411F161F for ; Tue, 16 Apr 2019 09:37:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0195D2892B for ; Tue, 16 Apr 2019 09:37:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E925928931; Tue, 16 Apr 2019 09:37:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 762DB2892B for ; Tue, 16 Apr 2019 09:37:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728937AbfDPJhv (ORCPT ); Tue, 16 Apr 2019 05:37:51 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:41315 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727087AbfDPJhv (ORCPT ); Tue, 16 Apr 2019 05:37:51 -0400 Received: by mail-pg1-f196.google.com with SMTP id f6so10052238pgs.8 for ; Tue, 16 Apr 2019 02:37:50 -0700 (PDT) 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=kRuEv926aMOZTHL0yq7NWx01gvtB4KDzBoGmI2mX+LM=; b=vS+zSYOSGiYWfGJaP8wSHgKZ0zkq6ORjX7ExmFX3GTqD08RCFMIW0Zvp+Ip19M6cy3 +U5rtVdflpL8D8i8Wyz3/HQLYISSB+70a6HakGtkcsilnzboigB0NlcMciWsYsaNTQtb SxHnA9y8DIKwT4RyQBd2+8EzHNI3/FcRE3fL2Z9Y7bnK41KO1u7p8gGzhyEWjPriq/s8 ytM5oeaP6XNBW9aUnhzUZQcyxgZupAbeID1V3tmgdYo/9k8+JvPhL0nqUGxYjzMT7LSJ /OPoEy/GEyVY6qs18XdVxKZzwkyAWrc7Ug9Y3mmTJh0WHmyOmK4aIEY8MN6sCQjfRT0k ciEA== 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=kRuEv926aMOZTHL0yq7NWx01gvtB4KDzBoGmI2mX+LM=; b=AO0edqbSyrow5HU2BbWz60C01CnTIKKzwEkp8mnWs8OrQZ+xfdEoH6sW+qk+lID6wK JgsE/5WVmbS2EMhxGLle+AMhDnt7DbCd0tAQidmtU448J3vK24uyRBOaqt9w17JEGsS1 UPyTanGSZ8pxAOvx5r0UG3xdUKRPyTogt0ERt2B52bu3eD1JnS0itKThaoJ1iKNiP/oM kNToiOw4e18pvjaR3YLnoIVQPsT9N3ktYTFbOsXElnwNbRjcxFfeWUHUrovGYOLc7WQa +KyA6+QpP7j//3TA2MqB7W11EZm1mzarorkqKP0Rn4UgCrYhOroCgGqN7fbwwexCxkNI 6gCw== X-Gm-Message-State: APjAAAU3rAlfTfxxIX3hpEYnUxLQcxo8ROEUgu5MkVSdvBZ4ovtgCJRp Y482xal1DdG9MeNcSXda16jC2q3G X-Google-Smtp-Source: APXvYqw9vP6Y6Y4YV8urAz2jUqCT6xj7+i0GC6gDd4Ge0EK2w6ebvZ68zo2Dx12wGQ9tV0kow34tcQ== X-Received: by 2002:a65:51c8:: with SMTP id i8mr75407145pgq.175.1555407470116; Tue, 16 Apr 2019 02:37:50 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id q74sm93145575pfc.111.2019.04.16.02.37.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:37:49 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:37:45 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 33/34] sha1-name.c: remove the_repo from other get_oid_* Date: Tue, 16 Apr 2019 16:33:40 +0700 Message-Id: <20190416093341.17079-34-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 18 ++++++++++++------ sha1-name.c | 35 ++++++++++++++++++++--------------- 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/cache.h b/cache.h index 3718b3db8a..871a167bf8 100644 --- a/cache.h +++ b/cache.h @@ -1381,12 +1381,11 @@ enum get_oid_result { }; int repo_get_oid(struct repository *r, const char *str, struct object_id *oid); -#define get_oid(str, oid) repo_get_oid(the_repository, str, oid) -extern int get_oid_commit(const char *str, struct object_id *oid); -extern int get_oid_committish(const char *str, struct object_id *oid); -extern int get_oid_tree(const char *str, struct object_id *oid); -extern int get_oid_treeish(const char *str, struct object_id *oid); -extern int get_oid_blob(const char *str, struct object_id *oid); +int repo_get_oid_commit(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_committish(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_tree(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_treeish(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_blob(struct repository *r, const char *str, struct object_id *oid); void maybe_die_on_misspelt_object_name(struct repository *repo, const char *name, const char *prefix); @@ -1394,6 +1393,13 @@ extern enum get_oid_result get_oid_with_context(struct repository *repo, const c unsigned flags, struct object_id *oid, struct object_context *oc); +#define get_oid(str, oid) repo_get_oid(the_repository, str, oid) +#define get_oid_commit(str, oid) repo_get_oid_commit(the_repository, str, oid) +#define get_oid_committish(str, oid) repo_get_oid_committish(the_repository, str, oid) +#define get_oid_tree(str, oid) repo_get_oid_tree(the_repository, str, oid) +#define get_oid_treeish(str, oid) repo_get_oid_treeish(the_repository, str, oid) +#define get_oid_blob(str, oid) repo_get_oid_blob(the_repository, str, oid) + typedef int each_abbrev_fn(const struct object_id *oid, void *); int repo_for_each_abbrev(struct repository *r, const char *prefix, each_abbrev_fn, void *); #define for_each_abbrev(prefix, fn, data) repo_for_each_abbrev(the_repository, prefix, fn, data) diff --git a/sha1-name.c b/sha1-name.c index b94d381bef..d49496397d 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1590,43 +1590,48 @@ int repo_get_oid(struct repository *r, const char *name, struct object_id *oid) * commit-ish. It is merely to give a hint to the disambiguation * machinery. */ -int get_oid_committish(const char *name, struct object_id *oid) +int repo_get_oid_committish(struct repository *r, + const char *name, + struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, - name, GET_OID_COMMITTISH, + return get_oid_with_context(r, name, GET_OID_COMMITTISH, oid, &unused); } -int get_oid_treeish(const char *name, struct object_id *oid) +int repo_get_oid_treeish(struct repository *r, + const char *name, + struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, - name, GET_OID_TREEISH, + return get_oid_with_context(r, name, GET_OID_TREEISH, oid, &unused); } -int get_oid_commit(const char *name, struct object_id *oid) +int repo_get_oid_commit(struct repository *r, + const char *name, + struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, - name, GET_OID_COMMIT, + return get_oid_with_context(r, name, GET_OID_COMMIT, oid, &unused); } -int get_oid_tree(const char *name, struct object_id *oid) +int repo_get_oid_tree(struct repository *r, + const char *name, + struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, - name, GET_OID_TREE, + return get_oid_with_context(r, name, GET_OID_TREE, oid, &unused); } -int get_oid_blob(const char *name, struct object_id *oid) +int repo_get_oid_blob(struct repository *r, + const char *name, + struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, - name, GET_OID_BLOB, + return get_oid_with_context(r, name, GET_OID_BLOB, oid, &unused); } From patchwork Tue Apr 16 09:33:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10902495 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 76EB91390 for ; Tue, 16 Apr 2019 09:37:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 582FD2881A for ; Tue, 16 Apr 2019 09:37:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4C7D12892C; Tue, 16 Apr 2019 09:37:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D5F1C2881A for ; Tue, 16 Apr 2019 09:37:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728952AbfDPJh5 (ORCPT ); Tue, 16 Apr 2019 05:37:57 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:38339 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728786AbfDPJh4 (ORCPT ); Tue, 16 Apr 2019 05:37:56 -0400 Received: by mail-pl1-f194.google.com with SMTP id f36so10059929plb.5 for ; Tue, 16 Apr 2019 02:37:56 -0700 (PDT) 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=A26tUyMKsr/fpbymZn6ZEgynzjz4qEGPUXyQIXGFkYU=; b=MYxAL4KcTbsQWIynvmbyLXvTSj1d833wN/spj+fUsH2fZDY5xkd4QN8xabeqEpFnDg E/0SOzIpLO5jOaPvRWXQEEd0FgfNj0btkMXHS/8tFVwdZjIPNskNoWx07fO9hW5sGQi6 bmlQYX4uzieS985DTQvGb3vTupkSlsDnTqpaNYBzja+2CyPJieRjj8TYO1Gk/wq1rp32 Q9IC22X/e2QNt00yjhvf2pJS18UMI16aPUFI63MlaypAqBGGqvlBa8l1O3t7uR8P45We e5YPGp1mELAM8D6js1grRGQ1bt97JJat6CqCn1RsMeFLlgrml0/DJvXvAVfIp0g07mnM v3QA== 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=A26tUyMKsr/fpbymZn6ZEgynzjz4qEGPUXyQIXGFkYU=; b=mrrOzUr2uPKZ+J2VLJK3buex05kYFAjvepov6s1xOMDlsVS1WGlxELmgbNjMghC5Q3 3xZKy+DvRxla190MmzYUtJL29IbwglMrWAEjn7uMDFlO+qjAE98TfE2Mdj7UsnLx+Hsy y7LC8jzQhFCNAi3n7zOfUQsQA4chC9c+59knHYyFWLQF+z5WUCpAHvfY5jwgbl2UXp7Q QgKr+2WGkYr1elXnBsFBiRUpX/UUL2MwKf91cIJXFn/O4DEbM3NMnYCFSnUKWzg3ojtP TKApKtqhDohdX4EKMrr/s6wc/VnTtV6jBoa2rj4TaJWALyAV2HHb24xqIYfsjdc9WL2J w9nQ== X-Gm-Message-State: APjAAAXPMMnj8FTn6w41P+ZKojXqNMoheLjvgBOgi4ZBWUBuBKLlXwlL 2JiKCJk/W6d6JYirqm1L3K0AUMoZ X-Google-Smtp-Source: APXvYqx9LUJJLDe/JM6ZWSyBZ44RepkzHFIuKGh/6vr0LUZB2iutbt9tW61EgTiLFoFCOQAnBI4k3g== X-Received: by 2002:a17:902:ac1:: with SMTP id 59mr27732576plp.294.1555407475867; Tue, 16 Apr 2019 02:37:55 -0700 (PDT) Received: from ash ([116.106.33.3]) by smtp.gmail.com with ESMTPSA id l4sm35268153pgh.17.2019.04.16.02.37.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Apr 2019 02:37:55 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Tue, 16 Apr 2019 16:37:50 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: Johannes.Schindelin@gmx.de, git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com Subject: [PATCH v4 34/34] sha1-name.c: remove the_repo from get_oid_mb() Date: Tue, 16 Apr 2019 16:33:41 +0700 Message-Id: <20190416093341.17079-35-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.682.g30d2204636 In-Reply-To: <20190416093341.17079-1-pclouds@gmail.com> References: <20190406113453.5149-1-pclouds@gmail.com> <20190416093341.17079-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 3 ++- sha1-name.c | 18 +++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/cache.h b/cache.h index 871a167bf8..9a600a8b50 100644 --- a/cache.h +++ b/cache.h @@ -1386,6 +1386,7 @@ int repo_get_oid_committish(struct repository *r, const char *str, struct object int repo_get_oid_tree(struct repository *r, const char *str, struct object_id *oid); int repo_get_oid_treeish(struct repository *r, const char *str, struct object_id *oid); int repo_get_oid_blob(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_mb(struct repository *r, const char *str, struct object_id *oid); void maybe_die_on_misspelt_object_name(struct repository *repo, const char *name, const char *prefix); @@ -1399,6 +1400,7 @@ extern enum get_oid_result get_oid_with_context(struct repository *repo, const c #define get_oid_tree(str, oid) repo_get_oid_tree(the_repository, str, oid) #define get_oid_treeish(str, oid) repo_get_oid_treeish(the_repository, str, oid) #define get_oid_blob(str, oid) repo_get_oid_blob(the_repository, str, oid) +#define get_oid_mb(str, oid) repo_get_oid_mb(the_repository, str, oid) typedef int each_abbrev_fn(const struct object_id *oid, void *); int repo_for_each_abbrev(struct repository *r, const char *prefix, each_abbrev_fn, void *); @@ -1486,7 +1488,6 @@ int repo_interpret_branch_name(struct repository *r, unsigned allowed); #define interpret_branch_name(str, len, buf, allowed) \ repo_interpret_branch_name(the_repository, str, len, buf, allowed) -extern int get_oid_mb(const char *str, struct object_id *oid); extern int validate_headref(const char *ref); diff --git a/sha1-name.c b/sha1-name.c index d49496397d..cf314ebb29 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1338,7 +1338,9 @@ static int interpret_nth_prior_checkout(struct repository *r, return retval; } -int get_oid_mb(const char *name, struct object_id *oid) +int repo_get_oid_mb(struct repository *r, + const char *name, + struct object_id *oid) { struct commit *one, *two; struct commit_list *mbs; @@ -1348,27 +1350,29 @@ int get_oid_mb(const char *name, struct object_id *oid) dots = strstr(name, "..."); if (!dots) - return get_oid(name, oid); + return repo_get_oid(r, name, oid); if (dots == name) - st = get_oid("HEAD", &oid_tmp); + st = repo_get_oid(r, "HEAD", &oid_tmp); else { struct strbuf sb; strbuf_init(&sb, dots - name); strbuf_add(&sb, name, dots - name); - st = get_oid_committish(sb.buf, &oid_tmp); + st = repo_get_oid_committish(r, sb.buf, &oid_tmp); strbuf_release(&sb); } if (st) return st; - one = lookup_commit_reference_gently(the_repository, &oid_tmp, 0); + one = lookup_commit_reference_gently(r, &oid_tmp, 0); if (!one) return -1; - if (get_oid_committish(dots[3] ? (dots + 3) : "HEAD", &oid_tmp)) + if (repo_get_oid_committish(r, dots[3] ? (dots + 3) : "HEAD", &oid_tmp)) return -1; - two = lookup_commit_reference_gently(the_repository, &oid_tmp, 0); + two = lookup_commit_reference_gently(r, &oid_tmp, 0); if (!two) return -1; + if (r != the_repository) + BUG("sorry get_merge_bases() can't take struct repository yet"); mbs = get_merge_bases(one, two); if (!mbs || mbs->next) st = -1;