From patchwork Sat Apr 6 11:34: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: 10888137 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 092D2922 for ; Sat, 6 Apr 2019 11:35:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CBE0F27816 for ; Sat, 6 Apr 2019 11:35:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BFE8E28A4E; Sat, 6 Apr 2019 11: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 613F927816 for ; Sat, 6 Apr 2019 11:35:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726435AbfDFLfV (ORCPT ); Sat, 6 Apr 2019 07:35:21 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:39567 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLfV (ORCPT ); Sat, 6 Apr 2019 07:35:21 -0400 Received: by mail-pg1-f193.google.com with SMTP id k3so4493917pga.6 for ; Sat, 06 Apr 2019 04: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=y2oBmbf5BDonb8ioNi8En6W+qxy7sm7wmSFCILcVceI=; b=ro4fJVr03OqLNbiCgx7EDrgkkm+1k1C9VOtYZg+AIDX8ZERjT9vOfH0zK+pilEl7ma gpIME0R3uTbN2SXUW4k2gdSwoqfsGJ02f4y/4uG8Iqaa6YYVrBxXafbbw3Ia2K9H6j2t DqK8l21goXjBtDod0MvBjiwG6tXSC0nYwRNf+XEd6/amoq6U0vZiCJwW5uiM2jQRyYmz paHu5/CSqU2StG61y5LwM1bXBOjv28yB7PFOjzSwRKN7QByjKaAmxGsXp6eoENlJJ5e0 ABCIDiA8vcpkXsweTbMNvWZtBRnMlu3VE+RJ1/n5nzYvMFuMj0U3I8Jz3Ner9CaP6n1d R6tw== 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=y2oBmbf5BDonb8ioNi8En6W+qxy7sm7wmSFCILcVceI=; b=YhaXAUoaHAPzE/6/senDCRyVMTmieohlLf+BkbhSo8PRf9UF+0MwyRqb/1VeiK8/74 gpaKnb/nFwcdopxjonwMI4HkvXjGkZO5+VoSg0E6kJSaOFjAERgOQiq55qTi55z4sy5q nGvrLZ2GNxBuhwjrF/D23ObRTqCAbE/z29rAGyKfk0uUqoerYrYsJxfbKxAi/5Im2Ns7 iHfwvZEzxzRJCONtkqOE9EJ2R2GiRQikEWyviSPnpuMliuBzKUIfP72pRcZn2SGPEwPR Iem4fMaUh4h2jj1ut84kvOVfieQK2gsL8edGJprDYqkk+70K7rKmdgVoUQitMW+9/Iis nIkQ== X-Gm-Message-State: APjAAAVZGUnFjE6J/pDodJtILZp60v5FMxtWeG+/qrTxPIOcb6pCjHvF O113AwpaPF9s7lOTvYmHMV8= X-Google-Smtp-Source: APXvYqwlQSKZNTMi2i+6nATZKLnS+zuA2Rp5yGiL/VFG3XOizYL/Ir7MRQ/R5Ob5O7zEmuNDdBSiGA== X-Received: by 2002:a63:d256:: with SMTP id t22mr16541284pgi.80.1554550520343; Sat, 06 Apr 2019 04:35:20 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id p189sm18986970pfg.184.2019.04.06.04.35.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:35:19 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:35:15 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 01/33] builtin rebase: use FREE_AND_NULL Date: Sat, 6 Apr 2019 18:34:21 +0700 Message-Id: <20190406113453.5149-2-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888139 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 4CF2D922 for ; Sat, 6 Apr 2019 11:35:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1ADBF27816 for ; Sat, 6 Apr 2019 11:35:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0EF2A28A4E; Sat, 6 Apr 2019 11:35:28 +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 94CC427816 for ; Sat, 6 Apr 2019 11:35:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726452AbfDFLf0 (ORCPT ); Sat, 6 Apr 2019 07:35:26 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:34063 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLf0 (ORCPT ); Sat, 6 Apr 2019 07:35:26 -0400 Received: by mail-pl1-f196.google.com with SMTP id y6so4491253plt.1 for ; Sat, 06 Apr 2019 04:35:26 -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=3v2pGZYYNA4vHhXBdQpgOJwZY6sVcbs2AiPmlO3aS4c=; b=MQ4wpACngvKazX/PhZ9PJLHtVPe1tUgJEy55uGHb0jpNK0ZoLhGV0MU+wvlp4qsTEc K5b9lKGO0pcNw0RNEPFr/S9E2ePvms9tzPEUiYP36l5ob59+18Dz7hTcU5udNKTXqhMB a9c5sBOMaLX8v1Uyr4UU39Iw/QBWUVOyo+UbQgqburD+4P5yll/VUcf+/9Zs2tjwFkAf 4s03uTQHLVvHPFIHl+wzexwq5CZT/objtOs5YphBUv3jqtCAsqbAZgX9IeL8IhFWyZbE i/v9cQK1s2kyWCILNNnxMR1+GPO0GPYQCUnp7/SMKD99g0g2hJvQX9lB+TZWnokqQbAl uV7g== 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=3v2pGZYYNA4vHhXBdQpgOJwZY6sVcbs2AiPmlO3aS4c=; b=mEdu9yJ9Ue1eFxhAMkRpWKg7N+Y9bvHfj3tj3krN2YVsxKJ+25l9xsK3GKzhBtDhmT cpEZ4JUpyNrAV2HhvHqWJgcC3gg7AIfGjxYtpL6RmuZLZ6ICWJpQQ1b+WiHtXa+FsJFc sThYZDWlHEUtF2SNWKvg9kHfkE3AfqRX0k0MG8SUTkx72SnDlpekosBjJxqu1/wiLZU3 gwj55oDtn//Ey+bmDJkU/p5ekMKZc10c3fX2kmBj2mb8EPnI/1/CjKkW3FwII0RRWyv8 MPdPKklXh3rO10YmtsSmBcosL8hM2GbZcMibgJUTGBU8NfaNt7lAzD+9MN7RXjFm+0jn afgw== X-Gm-Message-State: APjAAAXSQiMMJJeFrz+1n+MXY5t4T3vhV+Ay/RiFoxJjhYM1uwzZ3JC9 L5wsLTtMeNSCh7bGK0+mGvs= X-Google-Smtp-Source: APXvYqzzRvF/SryMLL7AfdVTqykvmVsFT4UFmHd4QWtOd6b/fNHr9dRAz75oIwZ6adPLSiPdtrHhJg== X-Received: by 2002:a17:902:6a89:: with SMTP id n9mr18904158plk.76.1554550525795; Sat, 06 Apr 2019 04:35:25 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id v82sm57670167pfa.170.2019.04.06.04.35.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:35:25 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:35:20 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 02/33] builtin rebase: use oideq() Date: Sat, 6 Apr 2019 18:34:22 +0700 Message-Id: <20190406113453.5149-3-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888141 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 D9822922 for ; Sat, 6 Apr 2019 11:35:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AC5DE27816 for ; Sat, 6 Apr 2019 11:35:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A0A8028A4E; Sat, 6 Apr 2019 11: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 493DE27816 for ; Sat, 6 Apr 2019 11:35:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726468AbfDFLfc (ORCPT ); Sat, 6 Apr 2019 07:35:32 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:40031 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLfb (ORCPT ); Sat, 6 Apr 2019 07:35:31 -0400 Received: by mail-pl1-f196.google.com with SMTP id b3so4471369plr.7 for ; Sat, 06 Apr 2019 04:35:31 -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=9Hh1qjhIYgsEJ1RAvKb6URhIj4fZF8d7gLklPr6lwvk=; b=VDq/R7kY1J9zoxoKZ9Co53IXDguPWqV60tTjiT0CeB8gJ4LU3A8wvCIM5NwdpLwvL5 PorPJTCykDbGP84cDAA1nGHhmOPhO+u7XaqQlLqVFd5Bs5bYgoX6N2dW+FtSFWFyga70 JZ4gkBeh8QcB80S92lc52ZxjdEXwl5SdEldcYpitXvAiidXeYX6TNw2ffbjIBYcx466S FCxXBovPwOq53YadG6IzXeR0tmOS/wDNZ3cPMfDSE82dpN3/xMNJ7uNZnNNC9PYyjqlE o3uKrkycYlYrS21uSP2xMauufP+JExtf1kB8VeSS/jPc5o56E5XCWAnWyBIJMW/PjAuk +aNw== 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=9Hh1qjhIYgsEJ1RAvKb6URhIj4fZF8d7gLklPr6lwvk=; b=QQg6h1avX/85a81cbflFFU85ACnpUx/RVpGICzMX3LeC+nSTuJp11eVX0NwO2WWO5+ NeAhNrOx8+XMSlF+HhU30rFOZe2F19nqPJJ6X0JNCRbSE/9KsUgrPSYAwu2pHryTVa7l /vNdz43/tugu8vjlAI6pkiMz7Ot/xcqPLBSYW65sLCfUgqXOH/v7UKCx7blLbbNDMhaE w21oIXMeXh78XB6ttTZZcPpPa47Df1HcFVF9wHY1wytk1ZrljB1TMv3HEnYczs3lWubv l5q2iZv/azWsxyO4PhREtGwEFe7/TvnM6vFgU4GOEw57sMhEckw2TGAkZ7uLMwGa8VLx vYlQ== X-Gm-Message-State: APjAAAX/qq+l11h6JBsZKhGEiNaAYbGUpaHliqEKyEuiDMy+itOYgb8E o8ib/Y5NnlfK/OaNQ0AyJNmwsETv X-Google-Smtp-Source: APXvYqxTkfYXcfB7Bzn0GaxiSvSrELiWYHrsGOg97YJDgY+z0fcdFYrYKIvyj4Lz5W9jNjwOdr3KzA== X-Received: by 2002:a17:902:864b:: with SMTP id y11mr18539979plt.1.1554550531215; Sat, 06 Apr 2019 04:35:31 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id q10sm30084743pgh.93.2019.04.06.04.35.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:35:30 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:35:26 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 03/33] packfile.c: add repo_approximate_object_count() Date: Sat, 6 Apr 2019 18:34:23 +0700 Message-Id: <20190406113453.5149-4-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888143 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 DCDEA1800 for ; Sat, 6 Apr 2019 11:35:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B275327816 for ; Sat, 6 Apr 2019 11:35:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A642A28A4E; Sat, 6 Apr 2019 11:35:38 +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 4F18227816 for ; Sat, 6 Apr 2019 11:35:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726493AbfDFLfh (ORCPT ); Sat, 6 Apr 2019 07:35:37 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:46752 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLfh (ORCPT ); Sat, 6 Apr 2019 07:35:37 -0400 Received: by mail-pl1-f196.google.com with SMTP id y6so4466208pll.13 for ; Sat, 06 Apr 2019 04:35:36 -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=SILCV0xL0rMhdc8DRhCUAEY33mnaNDt1h5vVG3Tug14=; b=A6oHA7YpfdCRe8OKG7NpcSkQeWcrsYBUCVxdz5eULDgFDiqUREeecLwFnq+gymF5QL sDkS8+frIR8DHZThiUlHRr+R5n0fXjBs5vPJOE6Qir6JVtczdvAJZLRIpvpDhDlY9lzs 1V5bKRaSwrGnTTWYIfcsmg96+Sgbnump1Ietdfb7WHyCS53AydUzsHS85paAXok5IaMA 9hg7DQaOA+utGVPygLQ2/q0odOzESnl9rDVmA0V+w9mOEaNfw+gc29xHplkyyBu2hpHy EEAGzpMdGOg4n29n6m/SOxdbDoYd/l3glR49YNxuAdLjcG4ysK8GocMauzXKvLw8MVyk 6pyw== 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=SILCV0xL0rMhdc8DRhCUAEY33mnaNDt1h5vVG3Tug14=; b=cw2h856nX7y1F8lff1csc4tdLkFglFiAxI1p6k0Y9NSoB5Xogib9E6hgsfccZWnM1c HI74HLEanVTwnYDCTTdo5fHyzAEuucxV5RIMTxM+hjzZmHdz6v/Cgq92GRpA+wxza4e/ Qd2ySVpdT5lBdd2kaARHeO8cekL6CsSY+fSiGUP0fHJZqmoW488eVgVZrUqLRYf4FaJU 4u6+tTushYYOZgITvla6jLSCpt7jmOe50g0CxLXA9k3GoL7Wr5Zdnwj5mL9HZAgcGXpb PKnpScDiN0adgRzf2qqeLJBMqIlRWA95uXxooOEUKoOcd5ZoHaZj1eJuXv/kAM1+mse2 GAow== X-Gm-Message-State: APjAAAXlvMSm9jq5RIRcU4RvrPm478SIJCFZJefNsP+M31GKKtBEquJc e8YmLmLwPXXWbRHMYgg1ej8= X-Google-Smtp-Source: APXvYqyMncNPmVN7rczOLNHE2qYZWigNHSUZ5+GHEI2fB1GHBLHwghYr3aW/IULT2D5+3dUT/75hKA== X-Received: by 2002:a17:902:4681:: with SMTP id p1mr18518762pld.42.1554550536567; Sat, 06 Apr 2019 04:35:36 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id o67sm46921088pga.55.2019.04.06.04.35.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:35:35 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:35:31 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 04/33] refs.c: add refs_ref_exists() Date: Sat, 6 Apr 2019 18:34:24 +0700 Message-Id: <20190406113453.5149-5-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888145 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 BB668139A for ; Sat, 6 Apr 2019 11:35:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 90C4E27816 for ; Sat, 6 Apr 2019 11:35:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8554528A4E; Sat, 6 Apr 2019 11:35: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 2BCAF27816 for ; Sat, 6 Apr 2019 11:35:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726511AbfDFLfn (ORCPT ); Sat, 6 Apr 2019 07:35:43 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:34074 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLfm (ORCPT ); Sat, 6 Apr 2019 07:35:42 -0400 Received: by mail-pl1-f194.google.com with SMTP id y6so4491445plt.1 for ; Sat, 06 Apr 2019 04:35:42 -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=QNHEfU5Es+iTRROnoumQYR2DGfc6CnyeuJUutLTjvtc=; b=TBAemQTMAntX+vhQ5XCYYrG/Ss6E7kap9s3iY8vYyvobUOpVd8kgmotppYLN818SsW h5/FhDWsn7D/NeZ5Hq6oA1f/tUquAanhjUNNU5KvXKQ6GnUdNRE+g3baCJM3ITg5BDNG b8rjFxk8NatoArMI78eCaGlGUpa1UwXz6T+AyVOruUMPaFaXCx4bV3vPBZ8r3EgncRCH Z2oKjWNzm/KYzIy47Z2SKy8OT7P1FmZQmlVfiM2pcpL/+AKCsk6cp+zfdyKlDdRuBDWp pdvjfxuwMjd8ciDLFSBBaLfyt3T6S3o1MCdzhj/it1UxnaoXecib1gtRXCs+OJFb4kIf ZhbA== 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=QNHEfU5Es+iTRROnoumQYR2DGfc6CnyeuJUutLTjvtc=; b=ofVrMRBc7KvPQFNZNMX41ECHXdAph4UoZfunNZ+ajx4Eyuo6gIg80ySwsuUNYNu89S wN4mWVSxNmDGWOs8hGdVAQr9DFKkYKMx4vDVAJ/AkwuwyL5MGkZMVuBjJ5FCEF7yT9oo KUovPnUxeLcY6p1Rqnvi9dAhsnl9JRWC9Sec+NOou3tpI7e5GTcb/pwFZ4A3Bsy8JwqN iEruoPpYUjJwK5oxFqkdZB2ekNWx/7nYq8U3ObEdD95Spp/1hRGQf7Uckf+ibs58diZj ZfYDrYnWFinHoV0WewZOlDDnHPa+8CoN+82g3Z8tb+sjrH6HGh0SohHE0hAOT4M9CLxp 7CdA== X-Gm-Message-State: APjAAAVlLQQKBEs8f63hwtjZQid6gw7L3k4FgQxbWamXYb/mdKPwZDmR OvrqQBxgxRmxuw41+d/MWPNj/KF0 X-Google-Smtp-Source: APXvYqwmlf3GBMDLKsYzz7ox0kH+PghSGo9a3Vza5nOAswOTKoBhm2APFtYIJp3XPykw57J0yGCnCA== X-Received: by 2002:a17:902:20eb:: with SMTP id v40mr18143680plg.20.1554550541959; Sat, 06 Apr 2019 04:35:41 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id f63sm34770584pfc.180.2019.04.06.04.35.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:35:41 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:35:36 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 05/33] refs.c: add refs_shorten_unambiguous_ref() Date: Sat, 6 Apr 2019 18:34:25 +0700 Message-Id: <20190406113453.5149-6-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888147 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 F16D4922 for ; Sat, 6 Apr 2019 11:35:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C543927816 for ; Sat, 6 Apr 2019 11:35:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B98F028A4E; Sat, 6 Apr 2019 11:35:49 +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 4E9C827816 for ; Sat, 6 Apr 2019 11:35:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726524AbfDFLfs (ORCPT ); Sat, 6 Apr 2019 07:35:48 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:39971 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLfs (ORCPT ); Sat, 6 Apr 2019 07:35:48 -0400 Received: by mail-pf1-f194.google.com with SMTP id c207so4757356pfc.7 for ; Sat, 06 Apr 2019 04:35:47 -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=0PazlTtVfhEjw1y44qBaTCCffQGEbZCrOeMwdGeo05I=; b=Z5Jn1O/CxigZexavDf6I0ypMD96GUuqVldVlBG5LAojaMJEbJzijdsIH2+hXMEIUr4 fRRLCNvE6kq04AwUtc37Fuc/b1KQNyygQMDhVOEIHnSo7ds6ixo5YAhgmRwxHxIy+g9S rBjN1oa/LGoHmO85dhUmRxnxMdqRli/3irJZnbnZVAiu/LvqXS6Ubv91f/Cka4AYViJr fyR1bGe0fttnLicZNmeKQ88PpIaNI4Jod8APYghvA8YGLjwn0ybL+xT2R5LEMTqE4I9P bPio1JvPTG3u8x2cuU9Joq8Jxt1+vUaUKyQN2t4Pa8lUZGTr4txlfRekfuk3aqKFbZrH 30mQ== 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=0PazlTtVfhEjw1y44qBaTCCffQGEbZCrOeMwdGeo05I=; b=OTf+kraYak8g3OIwqvLHsftMKuIzZDXJqNeKsij95nF9bED5cDvV1Ae0FKOZTTDJ6x 5EcMWsAhcd1crJ9ixHNQ7oOD1kODMRMrfpcjbpU6dlQ98YvZ9cyugby8sAelO3RhVpOv rrFnUTKZ6aAwGXgRfTBFu+UNmd3hCZ1CdtRo5mxU7gIyuTxl4GpjPmnt2SR/UaF+W51R JoPtZilj7CwvND/y+GFXClRQeFJwFVXtRBQpcTTIy1fjTza+Y/B8AdmQMHOZV8VrdrqY UxiNYQAYK2BArYQDUlCvcTWhadfmKfJQy/BIRom1iFIAWgCeaNK2NY3HdcX8lTRvGmRD xG8Q== X-Gm-Message-State: APjAAAVpeoF/NryhUbXjWA82kHDf/IU/bm0ydo2ndddjo/im18p7kC46 nhhwSb+CfVFFgyUugH7uRXM= X-Google-Smtp-Source: APXvYqxpMF0psYAkq8vcx9a5ObaGKP9N7jbOU8t004KT4Mnr7gwfdi6GCQKlqVQH35e4zypfPFRPhw== X-Received: by 2002:a63:fc5a:: with SMTP id r26mr16546992pgk.97.1554550547355; Sat, 06 Apr 2019 04:35:47 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id p2sm82386326pfi.73.2019.04.06.04.35.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:35:46 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:35:42 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 06/33] refs.c: remove the_repo from substitute_branch_name() Date: Sat, 6 Apr 2019 18:34:26 +0700 Message-Id: <20190406113453.5149-7-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888149 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 700C0139A for ; Sat, 6 Apr 2019 11:35:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 464F127816 for ; Sat, 6 Apr 2019 11:35:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3A9A028A4E; Sat, 6 Apr 2019 11:35:57 +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 D2E9627816 for ; Sat, 6 Apr 2019 11:35:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726539AbfDFLfx (ORCPT ); Sat, 6 Apr 2019 07:35:53 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:44193 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726528AbfDFLfx (ORCPT ); Sat, 6 Apr 2019 07:35:53 -0400 Received: by mail-pl1-f193.google.com with SMTP id g12so4466388pll.11 for ; Sat, 06 Apr 2019 04:35:53 -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=DLHFfdnN0jx4Qdk7kWZsPEECXBZdnTGBSUUpleGoRQ8=; b=R+f1LUxh6/OkipydSvFsPyF1VP5KFZ1SNKuRuUQdExd1cBsUVh1ygoeA1w7SiMqB4Q cAUW5KH5FK4/odNzuCCx2EVkr8ylsVlGhR7drgAMP6h5Kqy+RY0nGDZMtje2PfASUxUX hTWFmxUDpF+kWAn64AtwgrxSm56F5cq67SwpXu8FAgMFseA1A8HMo9NNJz6thRRJVQ5x GAl8cZ8Kdatwod+SXr37C9y++7Otrr3lYFtg1rDJjhX7hGK0hRK/IK5WCXFxHusRsCMD AcDg8MPV9y1ui+AE9uSggTIVi2+ptBDFVg3g0ILz92DoiJDUoGFuh7CYR2txApAnNFy6 /ewQ== 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=DLHFfdnN0jx4Qdk7kWZsPEECXBZdnTGBSUUpleGoRQ8=; b=YsC8Vv2a+0VIlhi3mh0/XUNPxYVU2fmLxhKTb+fnzcxdirEDudyoM7kKMeV+hw8sCv 6lJs4vbHaUJxr/mgBVht5op8AJB8UqBYXywF1XXvxmAku3wenuqJdzCjxRSwdjOVYuJs VHQNJMc6ir5r4gn0bol+qs1QI6mb8YJwmFayYfsDUJDdomILWUR3FJBmbfvXFcvuPUNe DJOcFC/wJEuHE/QHMKpfa5xoWUFMnnGQS2cYh+9QzCKUDByhK13OdFaHL3KYAafJW3LR i80PeOiWh8V0vK9RdI4gpfDFn0yITVCyN+JhUY3Fp4jMh6+CKT05fJhCy6p5H8qWwrmT Vu5A== X-Gm-Message-State: APjAAAUJ/UEJ5GMxxw/eJkJ4ZSco/l8bSc3Q/Z7oPQiAPrscqxH/Cqrr mvh0T8zFvWhxAALfo/aqCek= X-Google-Smtp-Source: APXvYqzvrkJyVNa4f9oh7cjTkgp3diZWc7uqQP0TJ4onjV7fGb0FljjpbWYtyQsghsK0oEa3hraYlQ== X-Received: by 2002:a17:902:7589:: with SMTP id j9mr18791533pll.287.1554550552710; Sat, 06 Apr 2019 04:35:52 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id x16sm49847360pge.27.2019.04.06.04.35.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:35:52 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:35:47 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 07/33] refs.c: remove the_repo from expand_ref() Date: Sat, 6 Apr 2019 18:34:27 +0700 Message-Id: <20190406113453.5149-8-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888151 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 B9F76139A for ; Sat, 6 Apr 2019 11:36:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8F53D27816 for ; Sat, 6 Apr 2019 11:36:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 83A9E28A4E; Sat, 6 Apr 2019 11:36: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 3017F27816 for ; Sat, 6 Apr 2019 11:36:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726561AbfDFLf7 (ORCPT ); Sat, 6 Apr 2019 07:35:59 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:38002 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLf6 (ORCPT ); Sat, 6 Apr 2019 07:35:58 -0400 Received: by mail-pg1-f194.google.com with SMTP id j26so4500956pgl.5 for ; Sat, 06 Apr 2019 04:35: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=10ZYZz/KCtQq+hTWl+4RRZs4YFEAPYAluyqXGvx5xco=; b=d7IdrH1/ZFKNBlUhJL5SMLfdYW5w0jyP2wUjwjs4Hv7rZTUHBLLYGZh1H8P1lTp+Jb NB2c1uWmbbeBqM280qmV7UzdNFXWY/DzfYkcWfCe730p6SWkRdk8eCJVOeuffiQTkSh6 hOGS1h7vEcE04dHHrsWXDIjCQwqSa/8OgFm2czhjcFx3s2PXYvB0oBI/tEIZR4T9b4XK qBuFgwlgDsPlCbY6bs1iQXhupNggUmQqkpTDpY7Gn/Cx9HLLzhgwYVEQ0Eu0nlzAHDHc hV7UvHta0xY9UgqaHfyHEnpKwnK+0ZTArxl0DE+h3QW9T9OXRVvEw1DZh9wbF2lwOw7q TJJQ== 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=10ZYZz/KCtQq+hTWl+4RRZs4YFEAPYAluyqXGvx5xco=; b=mIJhDJC0o+J9+9IP92h3bsz2lKJVx542RTvE5cysa58h0vRDeyOpaWbC6+f2bm36Sl bstN+Hg0TbjUD8tmekt5p+oRHDu6KRTU/ElrtL3qWDg90j6bqtOu1YJ3WYXC6RX4jPwJ jL+YbSvmi1Dp6d1kYR3m8zSeO671hl3p2CauBG8YhE00h89ZrA/LT8ULIqhS2PUO47r1 FLXrItawpl1kcJz/4FyX0egI6/S3pVWdizTiLT9sPd4s5XX+PMbJTVd2nQUOD9grfhE3 hfkW+NmceYDJKthEm5CSrOFrFj1MmtwKFxpGzuO/pxMYPaPcT9gQlafYA9aQDBa7nWLY ftTg== X-Gm-Message-State: APjAAAULwlXY7mnwfx9JmHZUkBDr9+fcra6bunt6OLItfThNc6WbHZ8f 7zzevinINs9YWWtCfLQEYt0= X-Google-Smtp-Source: APXvYqyBeqVT9uGGNJG0UjsIxVgifOVwclu4ItOwp3/fYJ/nSYIZwrpkDqGTFOKSFaEKnXCQ4plfNA== X-Received: by 2002:aa7:8b12:: with SMTP id f18mr18307355pfd.89.1554550557957; Sat, 06 Apr 2019 04:35:57 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id b7sm73796349pfj.67.2019.04.06.04.35.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:35:57 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:35:52 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 08/33] refs.c: add repo_dwim_ref() Date: Sat, 6 Apr 2019 18:34:28 +0700 Message-Id: <20190406113453.5149-9-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888153 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 D7ABC922 for ; Sat, 6 Apr 2019 11:36:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ACDED27816 for ; Sat, 6 Apr 2019 11:36:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A131D28A4E; Sat, 6 Apr 2019 11:36:05 +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 457E027816 for ; Sat, 6 Apr 2019 11:36:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726571AbfDFLgE (ORCPT ); Sat, 6 Apr 2019 07:36:04 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:45742 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLgD (ORCPT ); Sat, 6 Apr 2019 07:36:03 -0400 Received: by mail-pg1-f194.google.com with SMTP id y3so4478622pgk.12 for ; Sat, 06 Apr 2019 04: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=szpMHP8EhvpaCOO0W8tVbc6AFYjGROhwwjWwnfbVc9o=; b=no1651ehIlY4odQ8r+Ow/PM8vL19tiLT+/HL79TP5KzKlq7AUL2qKGEbwhQqQgFhRw rp9/6VbCkXhLtA0sJeUXVwdJ5FwLCBuabZ/lTfwH3BX6iUW6AxrRetnhTScKvZmQOduu 3C4myriNSz/jvnv3taFboWbXuyu9hlgfOS9WmI/6Nm/oLohvpGZ7iQ70q0CDKOr34Uv6 vTDbMVzR1MaFcGYaGDIbTU3wy9R+7gAxXb4Wk906g34v8bV+Zdgz3uSl2fEbQlrP7a/Y zLnYDeF2FObXIGrxEoMJzKUzudRBQMkv5LbMni9j5hrj2zSRRFDrSDO0fKmUFmBe389S vG+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=szpMHP8EhvpaCOO0W8tVbc6AFYjGROhwwjWwnfbVc9o=; b=GOjroJ8WwOSXD2+COrZN25FOgMFrx1kFT9hHZQm0QH/u+jL2pHRMfcMYdP3GtkDKWi FotL7UKZZsLQLcbFwS5Ddwn5gTlWKdmFTPW88yK/xTAGyR8TA87HxCt9V/0iaG651Qo6 nglKzNWST0yJ/SZmbJDQzBkh7oGay76TxfSCLJ9eYx3cLjSaHbpukJiDzRpALjgtgWtF ZvskpDDcMiCILDbx4VKZNIsbKORZGeXLHbWm49q30UXWYEk+bB2TvfUJxzSAqHgR6knN RdeUpi1DNjd8JuZxpBnpQGb2YYM3gHU9SnsRZOUMVhDzIZKNUDVpRP+8+8d7s0cfN9y9 5qAg== X-Gm-Message-State: APjAAAXBEadu+z12HLXSwazp5P0fZt7kbdDlyBhKtUTmbdefFCgYEPK1 mroZ+IRbPoYE4NAALUkovhY= X-Google-Smtp-Source: APXvYqw+4vKuwjPTr14NEw1W/4yOu4VMqbG+Ltx426AiAO1IXhkUKYVWWQYz7dvv1GYtY+OS2ceVvA== X-Received: by 2002:a65:6149:: with SMTP id o9mr8343652pgv.254.1554550563331; Sat, 06 Apr 2019 04:36:03 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id 75sm42503723pfr.55.2019.04.06.04.36.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:36:02 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:35:58 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 09/33] refs.c: add repo_dwim_log() Date: Sat, 6 Apr 2019 18:34:29 +0700 Message-Id: <20190406113453.5149-10-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888155 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 5F4BF922 for ; Sat, 6 Apr 2019 11:36:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 324B727816 for ; Sat, 6 Apr 2019 11:36:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2616828A4E; Sat, 6 Apr 2019 11: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 B204327816 for ; Sat, 6 Apr 2019 11:36:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726578AbfDFLgJ (ORCPT ); Sat, 6 Apr 2019 07:36:09 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:45509 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLgJ (ORCPT ); Sat, 6 Apr 2019 07:36:09 -0400 Received: by mail-pf1-f193.google.com with SMTP id e24so4743333pfi.12 for ; Sat, 06 Apr 2019 04:36:08 -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=LaAroo8H6l5o6UF7G2ggzqIjs+ycGdPBE3mfbGzd8Qc=; b=ChqjZWl1C1DR22FhqCRQTUTlRI06atScMYEcppGObCQX3EtaVSsXu8Njbb5pEmPFHV /YTa5KUg46OjKDXKDi1ZB3lxIM88RjXtNG2PDZ8/zR7wcZUSC5qlCyhkPgqOtr343Cxh Osu1bZoLKJllsMjAN+eFkRP4wdOygNaC05+S0kvmDjLJ5pSgxNocXpWclziV3nMU6KF8 4Mx9ueFnqvh288/Ju6pXU97H2he157OisyTZQML2P17Y6hqrA2tJId+Kr2OJeqUSEsE0 +3uRgQjSI/xNJXiqRQuOZcpiPw15cRf6zmS2EayBeEzTgPfsr7EkEBswpjG2Ix/FyWXv o80w== 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=LaAroo8H6l5o6UF7G2ggzqIjs+ycGdPBE3mfbGzd8Qc=; b=i1dnfL0j5Omq3jUUHiGVbVtE8p6DDm+00r4c+Aa+SYI4iaqPF4f1fkeulmBv9xQoJi 7RwmuiRW7Ir3x7FdbNbsSB3NPrOFt0NOh7EEE3ArDXSETASJzOp9fIkw0eVJjqxKTBgy pebdTgGYHN8KehsRYFpJLUEnoTvlsOtnZEs41BkZx77WEsgM4cVnqnoO4N/SaCgL8eM6 iew/K4jtWJ87WPQ9e7VqSWYRitn/jktUWB8k5YR/FmHlQLzyysIWphCdAG+9r/5ab8TM gbj+g52VMvelP63kfQK79NsYAzfdny+k5sOpMA1lvgAJ+WnbGlyNaYqwQj5I/B5/W4JC e/vg== X-Gm-Message-State: APjAAAUUq7OVLpDiJhXZswfdsLIkxvqPTYIFNNHcVMeuhE7L+YCyzs2M j5S28O8nSokd8Adxzm7oJCjGzsAX X-Google-Smtp-Source: APXvYqzShfzyPqVnmmY+OCi/Kb18foUhYqOQSMq5c42TKtlWOKeWmXgwsVa6x0YOR3UHV0z5MSw6Bg== X-Received: by 2002:a63:2b41:: with SMTP id r62mr16553524pgr.403.1554550568526; Sat, 06 Apr 2019 04:36:08 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id p189sm18997567pfg.184.2019.04.06.04.36.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:36:07 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:36:03 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 10/33] refs.c: remove the_repo from read_ref_at() Date: Sat, 6 Apr 2019 18:34:30 +0700 Message-Id: <20190406113453.5149-11-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888157 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 6C3F4139A for ; Sat, 6 Apr 2019 11:36:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4269A27816 for ; Sat, 6 Apr 2019 11:36:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 36C8D28A4E; Sat, 6 Apr 2019 11:36:16 +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 CA4E027816 for ; Sat, 6 Apr 2019 11:36:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726584AbfDFLgO (ORCPT ); Sat, 6 Apr 2019 07:36:14 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:36118 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLgO (ORCPT ); Sat, 6 Apr 2019 07:36:14 -0400 Received: by mail-pf1-f196.google.com with SMTP id z5so4764305pfn.3 for ; Sat, 06 Apr 2019 04:36:14 -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=0KdpKCBthk7pbFNe/d0GUMNketEGbY/sNj+6gFKzJkY=; b=MRiMONm8nk7ctdLin3lpx8flmHg7UUZ5NXFnFpGvj/qJwGkl+l5BY1BU7LTFC7lGDL jA4XsGZsG2trydYtTEBUyfjVx7+55vuiUa9HrIgJLESO72aT+p4kJzZ75pZmVslfA8sf ofN3BzHcyKSJeaqHVCWEjjqEiTp1Do4q80WfjEatrR3AGPCPQ0ths+frLXNdkQHoME+1 DbhhR9mqHA2aUxDxUa6rfHJqWN4rCl/Pv3VTjUwWO9vMuPXRs1osfi7m51+y0v28Ch3O rKca/i4e8W56fCQIsYvWTNFWhu9cHcxmqZM7B9k9YOhl1N8H72lAZtS7BMlWT4hsmP6T j3CA== 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=0KdpKCBthk7pbFNe/d0GUMNketEGbY/sNj+6gFKzJkY=; b=oBRClpBrXZkrXEXxi4rONq7NTypfqtjlbuoQJog315kHM7BKcfS7zbmd1FdttHj7AR 4hsefRZO9f8XaPBuCub+flNMVi+fk2IiADmdbIYeUaPOSQsETlGZU1ifoeW3CX4fNVwk tkuGxkyabzV89TdoP7My1i+5lb/zFSiHMCPbEOwI6xu3KFWF4xYXIXhY95zqUV4rDgXA dmKFmQzIr0d171YDNwlwjFPh9AoG4P+gbc82spJ4DT9w26aZrJ6nQF7lPzot0zAP6YV1 ga7wcYc1tX5ZgRLM1fmBGHmU9MZlKWupV8FcQe3oAnJxDUELRgRx9icMGu2zguNlbqq6 LMdA== X-Gm-Message-State: APjAAAUvVATJsilDdv/rd67DQoBJU9uQ+oi4HtgEIuzOdD5XMVQotpTo vHlM3eww/SEJ9WJnOa+sCjo= X-Google-Smtp-Source: APXvYqztSzYiDPQsnyYjVZUkBancC7avLA7F1EdA2tkadFwZGK/WVUxAi8UMW7bfQnCtcUFfC3kb0A== X-Received: by 2002:a63:450f:: with SMTP id s15mr17156940pga.157.1554550573872; Sat, 06 Apr 2019 04:36:13 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id y23sm35663911pfn.25.2019.04.06.04.36.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:36:13 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:36:08 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 11/33] commit.c: add repo_get_commit_tree() Date: Sat, 6 Apr 2019 18:34:31 +0700 Message-Id: <20190406113453.5149-12-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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. Signed-off-by: Nguyễn Thái Ngọc Duy --- commit.c | 5 +++-- commit.h | 5 +++-- contrib/coccinelle/commit.cocci | 7 ++++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/commit.c b/commit.c index a5333c7ac6..f0a5506f04 100644 --- a/commit.c +++ b/commit.c @@ -340,7 +340,8 @@ void free_commit_buffer(struct parsed_object_pool *pool, struct commit *commit) } } -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; @@ -348,7 +349,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 c49aa558f0..57c8f71479 100644 --- a/contrib/coccinelle/commit.cocci +++ b/contrib/coccinelle/commit.cocci @@ -12,17 +12,18 @@ expression c; // 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 !~ "^(repo_get_commit_tree|get_commit_tree_in_graph_one|load_tree_for_commit)$"; expression c; @@ f(...) {<... - c->maybe_tree -+ get_commit_tree(c) ++ repo_get_commit_tree(the_repository, c) ...>} @@ expression c; +expression r; expression s; @@ -- get_commit_tree(c) = s +- repo_get_commit_tree(r, c) = s + c->maybe_tree = s From patchwork Sat Apr 6 11:34: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: 10888159 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 B07E9139A for ; Sat, 6 Apr 2019 11:36:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8297928A4A for ; Sat, 6 Apr 2019 11:36:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 76F9D28A4E; Sat, 6 Apr 2019 11:36:21 +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 27D0F27816 for ; Sat, 6 Apr 2019 11:36:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726588AbfDFLgU (ORCPT ); Sat, 6 Apr 2019 07:36:20 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:34114 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLgT (ORCPT ); Sat, 6 Apr 2019 07:36:19 -0400 Received: by mail-pl1-f196.google.com with SMTP id y6so4491991plt.1 for ; Sat, 06 Apr 2019 04:36: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=aTA8uZjHYmU6mFrJRdjj2PyQx8+QjT2oIRRXCztOqnU=; b=CYgS575fssy3oe7Rvwjvb6Cz1wwAG16IdQAu8vo2CQ4Wnio2nXcBjpdF2ot60fQ8Be jZ+/F9K7BZCDdMs8RdohPZg6o3M5hq63dR7xLjkT3e/mb67a8ssiZ9ReNBRo6nYf4hmz F9CZA+XmBudtoyqZ5bcqkTRptI1LtcD3WgY4vnjUs8F6M2wYq2SetQNtDHVhYwxsLo8s ogStnGMUMJHaTQDVriLyvXqDmK58AKtvolPHUyO+wEmNeXC5BRZb/d0t9uNKJKBIsUFg 2hIXyOC5nmha1OJ4YGqTKgo0Leg5OkL4sWzCmoOHB8gzIbXxuADsDs6tDbmuuu+KLo/l niKA== 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=aTA8uZjHYmU6mFrJRdjj2PyQx8+QjT2oIRRXCztOqnU=; b=S5BT8BEFsORAtgTF+i1fFxW6ug/6X296l04cq36B2DLTGb238gRTMtCEleGvaXJMhk 6DRlgM6yOh+mvLtJF9K4wLUKZq3hcdfx23fS+vm0ZYb6KLvKxFfzVxosskWyegVdrhtH CrU4junDyDrTY74nRxse+/NObIxLiBp8f650QQVC/4KbC5VSdmI4HlskMw9K8XmUQVAG MYVhYEj1k5XfIrC5a9yeCAw6vU5kEZc7wTm5WtwtVba6O2bLyHel+5LGClnl1HjHkbug t3svd4XaCyO1DWQ55oqGHmmM/taKut69s/0BzTYUZKSFuglLMbrYwYbl2DQAHRBryplb PPYg== X-Gm-Message-State: APjAAAXEHfFFOSqC8RdEInekBwrnVw/h4YlGhv/+OLHx53mz4n2fc4Ba vczLOyqab2oPHI0R6Z4TCVU= X-Google-Smtp-Source: APXvYqwcwibXh4XpYxk+Pq6Ew+ObhLtGuxhpE384Va0U0MIm96YCv2sJo4XHIR6F7iKGVmw9eXyobg== X-Received: by 2002:a17:902:2a2b:: with SMTP id i40mr2436064plb.80.1554550579272; Sat, 06 Apr 2019 04:36:19 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id e13sm40588864pgb.37.2019.04.06.04.36.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:36:18 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:36:14 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 12/33] sha1-name.c: remove the_repo from sort_ambiguous() Date: Sat, 6 Apr 2019 18:34:32 +0700 Message-Id: <20190406113453.5149-13-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888161 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 49E2C922 for ; Sat, 6 Apr 2019 11:36:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1E26427816 for ; Sat, 6 Apr 2019 11:36:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1224128A4E; Sat, 6 Apr 2019 11:36: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 B8C9027816 for ; Sat, 6 Apr 2019 11:36:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726602AbfDFLgZ (ORCPT ); Sat, 6 Apr 2019 07:36:25 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:35703 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLgZ (ORCPT ); Sat, 6 Apr 2019 07:36:25 -0400 Received: by mail-pg1-f194.google.com with SMTP id g8so4502664pgf.2 for ; Sat, 06 Apr 2019 04:36: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=0Sww8ndWyCxak9+iI+JOYHneVIA0yT5/XJ9VtPjuYpA=; b=f4Q0HY+bg97liuVWKm11VNnhybB/AwGGTF7IYl4kb9OcUnn3BQ9yd536FKDz5Uex+L fFYchRQlAeG3x0wiuIjuz62+8jXRiAeCCtPaVH/l3GcGLOgrAiFYimjdnLdY2OaHnvpG lwFnYYT1UPIoe2fwvbPHH5NrHLy/k8m1uOdxZJFHU4P7SeDF3SWVaxo5bm5TwgYZvT/O xOxifl4rsLTSHyvtNK8Qt7m7lgU9eE/aT4zDUY29veMZK6pTnihP4xECSenqqzbBbNlx bRND98uH9D7aYkHPoJ5W9Z1SoFe+TSREYdRoQL9rRTACFqkwhPGeFKuUMN1a1lQeyTUY mnuw== 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=0Sww8ndWyCxak9+iI+JOYHneVIA0yT5/XJ9VtPjuYpA=; b=MuZFP7qbvpic+O9KmIybmYKNYXUkxxbb3PP3A/Jo34bh1JOZK6o2hBTxCdtatLKcXV gj8kGfzHJVOCuWLVxFQ1kcC3mKhJsEMAym7FGTrFtAoV8UoS49dJ4u9r6wn1RVfXSV6i CYULdhryqbdsEdcTuG+lf7whubKVwoUm/yN6iNO7Jh2iJfH2yQArhcuy6PXa36ANuo55 zKdDmrL2JzI/Lvyulj5jzcPSdSXQyJEUESnBJQXzVxKQO0VfZiq2SKVSScjjFYzBnqT0 BiFuKfBWjs7BbAccqPjZUyU+rekHikiBddf3kEFaVtR4JtW7JHkrH0rff59q0bKwXu9j ORfA== X-Gm-Message-State: APjAAAUuyNUlr1y4sDx+9fT9JpmnwxTn62/VVIBy2xNHH0R+Tegm3eKV dxDNbxOA6tTV1XDlD+94d4xRnGUy X-Google-Smtp-Source: APXvYqz8DiXnxMpubGfILz6QJIM8rK5+HLBgntKPspAW7b9YvkeWakrfuxROxWmsu4xXz41jDVzk7w== X-Received: by 2002:a62:ac02:: with SMTP id v2mr18470672pfe.163.1554550584709; Sat, 06 Apr 2019 04:36:24 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id q74sm16096692pfc.111.2019.04.06.04.36.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:36:23 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:36:19 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 13/33] sha1-name.c: remove the_repo from find_abbrev_len_packed() Date: Sat, 6 Apr 2019 18:34:33 +0700 Message-Id: <20190406113453.5149-14-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888163 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 CA278139A for ; Sat, 6 Apr 2019 11:36:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9BA1727816 for ; Sat, 6 Apr 2019 11:36:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8D72728A4E; Sat, 6 Apr 2019 11:36:32 +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 27F0827816 for ; Sat, 6 Apr 2019 11:36:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726606AbfDFLgb (ORCPT ); Sat, 6 Apr 2019 07:36:31 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:33380 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLga (ORCPT ); Sat, 6 Apr 2019 07:36:30 -0400 Received: by mail-pf1-f196.google.com with SMTP id h5so150024pfo.0 for ; Sat, 06 Apr 2019 04:36: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=Z3tl6C17iYwwBOSBKh5AtgHHBV5w/wvyG2a5No1/lCw=; b=EGg/gNSYk4Jw+6FM+3h3YnwVbCe33KdcAZqb6jAL2ydZtz3d6Bx4VmiIswAR0WvBgj 0nNJWs35YqnWr75gf3IghJ0Pi799DjzHLptsyIR9s0LCcprzf8+afmV6ng518tiGsF7y yU0qXBo9uGI3XdqrDdQcfQRoftPrrw8/FOnxfgdeR/ZgvNeWTY2E1ssxwYuZ1uNVWdNS lRV+RzX7ff0f4GV7jAup8Ypk9zP3mXXt7npb+V5z1QO+0lT/rQFdbTdKS6a3DLSUhcD2 O3dJDTvyrKRcHwwQvfZuA107zoGif689GwZNvxLyi9KOrOQA+M9ADgUY4xsZ+ucfpdJZ tLEg== 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=Z3tl6C17iYwwBOSBKh5AtgHHBV5w/wvyG2a5No1/lCw=; b=jPk7T42BNFKImBpAOdBK/UeiUHBh3IuVr82e6lrcbVKVhhuhwWxsapfyoMUZxHT++G xiI6vnwxb3GHF4yBzYNpeGsKVa6hlBeg7nZzfHIPOXUwGYWrK3pdab2KpugAz7jgurYF gqt/X79VKlr3u45X7Mkm2KFlhbn0QYsMy33xMigevRKRm5+Iowq1ST9CAf3X3F7N1eT+ bbTUG8wQHDIQ0lOUWZDVl+tmP9ZIp6b4bHkUZhUtDR/8ye3fcizfx7lq1yK74enqjz4z qneEwXGtWdWIXoNcfocp12BIlqOSKX7s1z4tU1qoY9Ub414tAFututcCxaZa4G52l16Q dwpQ== X-Gm-Message-State: APjAAAXZNqFtwWUuT81aW9idy0Lg6Uv0LroOH3t0SGYy9va7/33QKzv1 rcBtTYvJLc5XcDD86beW+y6kzH/D X-Google-Smtp-Source: APXvYqxwf4dBHfHzciGk6+dPRJH8A7FA8TuMl1aKxt4NlQwjycn2bbZCr5+h2P30sPSknoz4crGo4g== X-Received: by 2002:a65:610a:: with SMTP id z10mr17094792pgu.23.1554550589989; Sat, 06 Apr 2019 04:36:29 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id c5sm359340pgh.5.2019.04.06.04.36.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:36:29 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:36:24 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 14/33] sha1-name.c: add repo_find_unique_abbrev_r() Date: Sat, 6 Apr 2019 18:34:34 +0700 Message-Id: <20190406113453.5149-15-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888165 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 8473A1800 for ; Sat, 6 Apr 2019 11:36:38 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5674A27816 for ; Sat, 6 Apr 2019 11:36:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4950828A4E; Sat, 6 Apr 2019 11:36:38 +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 74CB527816 for ; Sat, 6 Apr 2019 11:36:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726612AbfDFLgg (ORCPT ); Sat, 6 Apr 2019 07:36:36 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:45779 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLgg (ORCPT ); Sat, 6 Apr 2019 07:36:36 -0400 Received: by mail-pg1-f196.google.com with SMTP id y3so4479088pgk.12 for ; Sat, 06 Apr 2019 04:36:35 -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=Zkk+sKvuQ3qNLst7Ye1UEl3IZh2DQklA0UBtoCRshnY=; b=DiIhYIhl0WbH5i/gaJB5qJcdkW1Vy97iXZesCaDTHiHixuXXTXFBJ4bDibzmBSU5dz RGzo9O5ZCknHtH5IEdUVIEsk13PKYOIcrIvAdJpVYC5IljH376twmNSEbLs0qtW+fvIM X6+lxO9U+jc0FNAhCnAWtaD50O9yhSzyd9glBZ5IFKEZZUIH18aC8pL5lhJxKqFaIGNU beX5+fUbsX5hfnEhXRDzPxMSsUoWFbJZuvhWFtfEJWUwrRv98WB3zYWxehTFbM0dzF1K iVRDXB8ossVHXkB7j8w20BJJ7gVZKW8BuKqXky3QgJeE4lCQ1r3KSqPwtvV1GdSIqA0x S5Fg== 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=Zkk+sKvuQ3qNLst7Ye1UEl3IZh2DQklA0UBtoCRshnY=; b=Xku8ZHzoKLnupNApjFI2ua54eg2m0Yq7gxcfYAbxl/xS5vEvuyrYTMeOuQLXUQMsku f2ctWtl4gxdI7NDRiER3ZyPvqPVyZT2t4FLNbPs3K2FP7f5PCUeMEeao6DXk1ys/kSCh x8YOLy2PRUnw1W+1gwDwnduLlqerjp73uJ2Gsrf7n9t88Ne6eMCCMPi0bsY6ku0Wu858 uTwR6uUsNBPSX9VLOaEaqYimNkJETSua/EAa5ZvgpUulBNAkTn63OAqFBYgap7OmObNY /ZQ4Q9vivwhUIhHbXVZSbep64pkediFomwNor6RIGSiZytYA6KeIE6hs/9M1sdZcfDT6 ocaA== X-Gm-Message-State: APjAAAX0TvYWqQ3DlN4EY+rQHKB3nO5Q2xLJwlcfJsq4K568nhFjiaez hC3rE3cvc+bKsqXncfgTzd0= X-Google-Smtp-Source: APXvYqwEGSo4w9u5lzgw+2caSr+2cbcdyzAZl4c2/wmLq4i/sXUWGp0K+ZnnR6p7F6oPwzyC5xU9ig== X-Received: by 2002:a63:844a:: with SMTP id k71mr12169614pgd.138.1554550595268; Sat, 06 Apr 2019 04:36:35 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id f63sm34785206pfc.180.2019.04.06.04.36.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:36:34 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:36:30 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 15/33] sha1-name.c: store and use repo in struct disambiguate_state Date: Sat, 6 Apr 2019 18:34:35 +0700 Message-Id: <20190406113453.5149-16-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888167 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 E0414922 for ; Sat, 6 Apr 2019 11:36:43 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B377A27816 for ; Sat, 6 Apr 2019 11:36:43 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A7BAD28A4E; Sat, 6 Apr 2019 11:36:43 +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 4F83F27816 for ; Sat, 6 Apr 2019 11:36:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726615AbfDFLgm (ORCPT ); Sat, 6 Apr 2019 07:36:42 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:33565 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLgm (ORCPT ); Sat, 6 Apr 2019 07:36:42 -0400 Received: by mail-pg1-f196.google.com with SMTP id k19so4508650pgh.0 for ; Sat, 06 Apr 2019 04:36:41 -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=YLC/zHqD4nZfCBSwlO+lsrWxWfpYZdPdK2PMT6BBWgM=; b=j4t1fIvdCfWk+JPvFqDMmwIzSnT8uUEj+yK1j05wPk9JgX/Oa3vCFjvgxreqtTu+dB rBR9q2CGP+Kdlk11yfK9cnkxnctz4xSS2GQhrtlqg7e01iD2chcVxsvcH7ZoDFxixmCe vXhFEdGCaNWcAUT5du+ADj/6BIW5FYxyr9SGHZCNldCkdGTnfquRMnx6a2iZ9VjzBxpj PWrh4IJqZOsjrJpftuPZNoMsXPH9wYA/iplUH9k6Aau/Cilxyw7yhTUtashGr2QrduU1 vaAWgGZyIV/RTNe6PhyUxRqvoT/lp+jq5g8JAysogDX6RVwUEagb/N+3gS8Df3cidTKa mBvQ== 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=YLC/zHqD4nZfCBSwlO+lsrWxWfpYZdPdK2PMT6BBWgM=; b=dOhcIzFDqgRR8Mo4g1fSm24SbxTcxOISRSxccZH/oH1QXCycDKXJo8d9KteYleUpl1 YQ9J8j03902GrbyH6gIU0XZ8mhK3ojwLQK4ctMvhizKpIt7vQFNb0cgcBxzUy+UJrb/o 605rwV3rSHJGCZDUGf8ZW0wRk1exdeKsciLF+6ka1Nn9sF++pMKOqv0d8D6ijzyfZoRD gcI4F//iXzlhTOBRiFqvQ0PVkAAyQuDlyjJ6gBa6r9FjBOC+AR2Qjwz96FALBs5e/4N4 yFqzLn/bVeAQrVQV5C+yFQpqNb0m5yfHr1YG6ZbzqQDuEO7upqPcuyIESFYOC+ODA3Z0 0QjQ== X-Gm-Message-State: APjAAAUP33LmeKcRnf6Z4cYCCKjUIWfupp68NqX8uHin4K5qrc1PJzr0 bqrLqOpbO94yZgiTr+qaq7o= X-Google-Smtp-Source: APXvYqwepT/t/D8MmPjqbtt7RTVspjTGj9QnsMxKsCNktVTopzxGTi9vPQ6ZDgM9N3UTx8z7HsxevA== X-Received: by 2002:a62:1647:: with SMTP id 68mr18121808pfw.113.1554550601492; Sat, 06 Apr 2019 04:36:41 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id j19sm4186775pfr.155.2019.04.06.04.36.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:36:40 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:36:35 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 16/33] sha1-name.c: add repo_for_each_abbrev() Date: Sat, 6 Apr 2019 18:34:36 +0700 Message-Id: <20190406113453.5149-17-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888169 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 21CA3922 for ; Sat, 6 Apr 2019 11:36:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E969A27816 for ; Sat, 6 Apr 2019 11:36:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DDFE928A4E; Sat, 6 Apr 2019 11: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 7D2E327816 for ; Sat, 6 Apr 2019 11:36:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726623AbfDFLgr (ORCPT ); Sat, 6 Apr 2019 07:36:47 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:34221 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLgr (ORCPT ); Sat, 6 Apr 2019 07:36:47 -0400 Received: by mail-pg1-f195.google.com with SMTP id v12so4505503pgq.1 for ; Sat, 06 Apr 2019 04:36:47 -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=mk/AggNO03fk2G0u4xF9XXptVhBAQp2iIFzsp49nKTY=; b=D/pgfBc/dmOn9rxZLdQpaOWBoeiOxDe7IjiBWBOHBAZ17DvcLkELvgSpcq5zTeo3jo 7YsujW9mmlE0etY5FKC7JjelP+/Z2ozMlnhsoCoDNBcT84hAcoLRCSwrifMmjkGh53lh O3lXl3lvYgddj1JwmxsZV0JzbSMcbCfbhe/xq14rgJPVj6C+PJC33Ext3SlL+2m2nfDY w11jI2MLU4x4q7A/eMFfxJmgveNQJYAS6LuWeNcHOUV5ro1V86k/wxfOqLwo7velc7cf 2XgzDepJtBD5Ba9fOFFydVcAEV6BSdZKm+eWg1ZQO0P/Qg3QVvpLgg2NzHPviHyjGQmQ Bicw== 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=mk/AggNO03fk2G0u4xF9XXptVhBAQp2iIFzsp49nKTY=; b=KkURqpsf7RR0DACAE+bygjaPTVLWKjf78rLHQ30QlP7t4B72a9GaZyDctcXfBXZykm WDS1bCb0INRQ2bov4jAgIIaCMLDxo7wjdQbRffGys8wt0+6zidEI4innii8aK43n1KL9 MDz5VTiRrw6dL4rMqNlil3QoUlKAQt8Ad3T/6Hl4KJnyNe8l7Los7SyLrLrwKJwIFh9o +vUjdYkQ9a3ke6je4Cjt9YDcW19pkFnlFscP3IlaMW4/w/ZuIdGmM8QxLFSfO108i+Fs o2UryVZKBQLB7m972g4zUErC5eOuKKaJ5gHOP+dkZPMlDPWAOalT+kXPVM4+tlrrfNDJ 3QTQ== X-Gm-Message-State: APjAAAXbpTDkBuMeN7vh7MPrwxvjE33Z/GCSTE5zLpXgZZS0ZrDXGnEL j6gS/T4+X9uejCCIJOHHMcA= X-Google-Smtp-Source: APXvYqxXNGgGEU6xNTJWRJoON3Zr2qsxwxrP/rezkOl77NusDvrMBTjHf16DJBgN/uNUtY0cX/i/0A== X-Received: by 2002:a63:e845:: with SMTP id a5mr17857290pgk.246.1554550606714; Sat, 06 Apr 2019 04:36:46 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id l2sm24486212pgl.2.2019.04.06.04.36.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:36:46 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:36:41 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 17/33] sha1-name.c: remove the_repo from get_short_oid() Date: Sat, 6 Apr 2019 18:34:37 +0700 Message-Id: <20190406113453.5149-18-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888171 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 5F5A3139A for ; Sat, 6 Apr 2019 11:36:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3346B27816 for ; Sat, 6 Apr 2019 11:36:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 27D3328A4E; Sat, 6 Apr 2019 11: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 C23ED27816 for ; Sat, 6 Apr 2019 11:36:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726624AbfDFLgw (ORCPT ); Sat, 6 Apr 2019 07:36:52 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:37018 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLgw (ORCPT ); Sat, 6 Apr 2019 07:36:52 -0400 Received: by mail-pf1-f194.google.com with SMTP id 8so4766901pfr.4 for ; Sat, 06 Apr 2019 04:36:52 -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=9UDdC6QudJc1/9WbTZNYgF9nZ77a17Sjj1O8i1ENOk8=; b=nHOIFdeNwJDQodpWXJ+ednQ13AM85IRajMsFjrTiXdMQdVfsRxHwu49xAY8OiSH6v5 Fq2ssGpnNGiMauhr6fZzrsDpTORpxuLSe0aL503eC4+TLyXI9TKwToQfkhPwcIDALqF8 vhcT3Mg7DgLfRw2yymoF0HVe3g9rBAmzAWzlV9dXgbQBzN0u0EGBhG1fo2zJhrOkkHTf ycqlvAq6wUUEkc9tjKgK6cxDSiEbmL7+s4q2I2HNhswEVlWOiNEIjLDlQylmyoxL6NTL FbTOVPgshGXKNZdUcrDFlO9gWsMyBFMoKUu8kS/CFY8jO6cj4WVi3Aj423spoOPSMBZb 39wg== 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=9UDdC6QudJc1/9WbTZNYgF9nZ77a17Sjj1O8i1ENOk8=; b=YJ9EKZ7radYGjqMiiNKditESHHpCusniHeCImILMTSbQ2WblHQcokdz4IGQ9RoPChx e6DqiX5V6jmeKOPmkzh/+CYbhOcwOCS2UQ8nZCcu8VhpTr/Cny5IM2GyKdyRWqrd+1xT tAjfEizM67poTLcqfEkwmo1E0AJd8RpkSP1e360Kml0lW8uwFCCKrexyHLbHWZhus3Lc 2i3OfR788kHyM/vT9znt5dBJFs4bGdXgi1tZX5gqCfFDcDbLndhBBI3lEqNp2Ze3S316 HL1T2EVVIuUuBH2mcALFy7Se3VAGuh49a3SLIk4Ssfe0nCUVHncOuXGeGst0VDA4XeQ/ Enug== X-Gm-Message-State: APjAAAVomPsSWo/L+fIO9p+lY4sW3gkNUFwYQkRpcLiQAIDRIcj/GE49 2mmH9grBbRPLjkUjkfKUacQ= X-Google-Smtp-Source: APXvYqzSFHcTrkx8/RDDksv7ES+F7i2niZ7kTtJcqvsqHvLYWDPVW41ymRQvCpO3lbVnvKOJiYJc/g== X-Received: by 2002:a65:4341:: with SMTP id k1mr17681414pgq.88.1554550611960; Sat, 06 Apr 2019 04:36:51 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id j62sm16775714pfg.6.2019.04.06.04.36.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:36:51 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:36:46 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 18/33] sha1-name.c: remove the_repo from interpret_nth_prior_checkout() Date: Sat, 6 Apr 2019 18:34:38 +0700 Message-Id: <20190406113453.5149-19-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888173 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 1E252139A for ; Sat, 6 Apr 2019 11:37:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E738627816 for ; Sat, 6 Apr 2019 11:36:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DB58E28A4E; Sat, 6 Apr 2019 11:36: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 87EC027816 for ; Sat, 6 Apr 2019 11:36:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726627AbfDFLg6 (ORCPT ); Sat, 6 Apr 2019 07:36:58 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:44948 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLg6 (ORCPT ); Sat, 6 Apr 2019 07:36:58 -0400 Received: by mail-pg1-f196.google.com with SMTP id i2so4482383pgj.11 for ; Sat, 06 Apr 2019 04:36: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=zgl4uDGQElqhR/nr1PaRxHFgma6jHwWws1kyZLI+8nw=; b=hVT4PlEAhp4QfHDKBPo0B4TJ7ts3kS4L4UGL79iv9vNwKDCz9lGO2H7gbA4w4ApvsN xzP3X3c8Y+72Gvt/wcva1qJBnkal7xFYZ/HF5BBBdB6fqxSoYTsjQQcfUhxbjsH1TO9R pnW8pVBt0gH8uNquZhpJ8aS7vlVGrKidh88RWVBuWZwKEBmYZTURSDpxS1eACSMqxxqE 5iPxTdLP/lhpTBTvA3yw9ZEtzXejWQuVy8QhnF3TSfK84eCcqV1p1ZOlAvvwPT9v15QC koy395DGKo+Sgv8eQLP+DUu6cG/h9FdOrOqfPvzpergsN3GcwURcTwaJRRXUeNRD9Hvv F7ig== 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=zgl4uDGQElqhR/nr1PaRxHFgma6jHwWws1kyZLI+8nw=; b=DcTNycr5O9n5dxQlj0jptSurQbpxuXOOisX/d4ft20sN4QFgkmslqelK93p9wPkCki XRWbfHcxu/6RGdgzdTNTl9VphgZtWWbCa5SLkez8GV05967NInyn9Q7n1kS5UTRD50t7 BhLTwgteTvktGwRcuLW/iAPrFEVPQ/N3aapUIplBU/sS15xwdhiKxe1wwMi69jNfCBp5 xe7t1n9FzCUq5nFGDmteQ/bLFEYHEqIO4a1LRiFUJbXj1g2gWSfjVcWfNWg+CbeKpnK9 DolRh0VY+tnisVyaqs4tWDzsKzssjLM/3Yr1NOJ4En09L89lvlbTScAsfzNo5X1TWI74 RZag== X-Gm-Message-State: APjAAAUcajYev1XaCuGQ6HXOGtOaJPL/hSUw4cM2xbxkh37a0iCqgGpc hWFXPHziFbzVcxXPEIgN1Kg= X-Google-Smtp-Source: APXvYqzp8Q7p8AQ8wKRcwa+0KUMNAZBnBd+Yvrio/FOaZIstcH9jZrpsVpQX8FZKvmE4IisDvzM6hQ== X-Received: by 2002:a63:e653:: with SMTP id p19mr17174291pgj.284.1554550617468; Sat, 06 Apr 2019 04:36:57 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id v15sm34892431pff.105.2019.04.06.04.36.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:36:56 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:36:52 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 19/33] sha1-name.c: remove the_repo from interpret_branch_mark() Date: Sat, 6 Apr 2019 18:34:39 +0700 Message-Id: <20190406113453.5149-20-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888175 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 03487922 for ; Sat, 6 Apr 2019 11:37:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CA7B127816 for ; Sat, 6 Apr 2019 11:37:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BBB9628A4E; Sat, 6 Apr 2019 11:37: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 5CBB527816 for ; Sat, 6 Apr 2019 11:37:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726628AbfDFLhF (ORCPT ); Sat, 6 Apr 2019 07:37:05 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:33415 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLhF (ORCPT ); Sat, 6 Apr 2019 07:37:05 -0400 Received: by mail-pf1-f194.google.com with SMTP id h5so150507pfo.0 for ; Sat, 06 Apr 2019 04:37: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=/5XiUNgZOyJMfbfBOhs6OmmQ4I37YwDc4n2auyrKfdQ=; b=gi9adLzpAdTd+P1jLf/Sp+MJouR21MvajFoKU1z9mvChvcEAROwisahAEV0DRDwFzA ZNjHOBr8ashzRbREuaIsmoFASyQ2e7NCP2p1bYEDWyu3Msy78Vbp0+EaJeYmgnfd1cuM GvUu0BU50YgwU2MU/CvTgnMJY+LNG7pbYPV1/1wA1QJ+ZM/zsV44Z+M9JJKbez1G6w/x yGvLDdSVMMZWn/BzIIpMq8UhK/PCvE9+00cXxAd8r5nB9+WvjWuJ+osU7O1NPyLGnmNS 4OLXRHCm8DjE/JI6HBFv3/TNrGtu7kcYl1Oyb++9o6S6gdwPsvrQZGWRMMIFZZQh3wKc dAqg== 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=/5XiUNgZOyJMfbfBOhs6OmmQ4I37YwDc4n2auyrKfdQ=; b=NIDRo+SbduSaCVrrs8b+MRkIpai53KmLveG7zoHZkc2ELzG6vF1E5yU2C532Wnixk1 NFI/QhmbFkV3ClJlu9NfDZqV+ud4TtSGY/YptwT+fJ6PpvUR14IbXgMqnNLUFE77sAdV D007YiODCRnmcA85JlICbVOiIGq5et0AemswywQr71jQ1sUo23vlnRMPNTj1IYqzZ+bA VNnkjDB5YPvzbpf/KOUfmzr0/tqiaSMYad6KiSrfyuWrWTD/mq0syc0YgvzudC5oQDBv 4cvp/SPtWVI0AlhWn39T1Mb75fb9Kn+3Hcg57RuWIml5GnaeYyflDVSG5UywB1ov0Gn0 PvLg== X-Gm-Message-State: APjAAAU2CwEcsrC3td5e3lQf5qcKjTpWfjdhXKZKC6z6dG4OE0lwdOHZ v0p/hO6PAKwZanaqyP7sICTOrd+X X-Google-Smtp-Source: APXvYqwmlfo0DAU2gkB/v5WpVQ6ztCfvRfzH7+eyLO6mq3vbIpJpLtjPl24Rsj/uf2+ARs/76VT5ZQ== X-Received: by 2002:a63:c706:: with SMTP id n6mr7750279pgg.310.1554550624462; Sat, 06 Apr 2019 04:37:04 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id r76sm19762080pfa.39.2019.04.06.04.36.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:37:02 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:36:57 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 20/33] sha1-name.c: add repo_interpret_branch_name() Date: Sat, 6 Apr 2019 18:34:40 +0700 Message-Id: <20190406113453.5149-21-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34: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: 10888177 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 4134C922 for ; Sat, 6 Apr 2019 11:37:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 15C2C27816 for ; Sat, 6 Apr 2019 11:37:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 09BA628A4A; Sat, 6 Apr 2019 11:37: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 98ADF28A59 for ; Sat, 6 Apr 2019 11:37:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726636AbfDFLhK (ORCPT ); Sat, 6 Apr 2019 07:37:10 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:33418 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLhK (ORCPT ); Sat, 6 Apr 2019 07:37:10 -0400 Received: by mail-pf1-f193.google.com with SMTP id h5so150587pfo.0 for ; Sat, 06 Apr 2019 04:37:10 -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=hvY2S7a8efdubnqZ497rHTpt8jwV5naQZUHDCe65xZU=; b=NhOcyjVpeQlj0hx2BCfCQRu0xHpJYk7bd7aaTh/sd3pKK43sgNXQYtvt7ibCgvpWiD 7CJINQWq0Sw243Aq30CiOf1Ht1klULfPeDcqqojUfUVC7G85AgAqd1Y+c6gbQ/f/xjXg UDgQ05a5tM/PZleYcdpGeH337svgXRya1hg6PZ4RwD+HvUkrsmffZvpI2dYH/SP9yibT JzbHVjMvq2btS/a1sx9Zb/PvLGkJ5732nzEu0KVflixgADjT91HA8N0byxbZ4R5rSXrf 8YIYqv85WG99vzA+UgGIUw27mUCO2IYxxrz149zRPVGstmB3ZBtkLT22DP4GirmhZ0/M /HgQ== 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=hvY2S7a8efdubnqZ497rHTpt8jwV5naQZUHDCe65xZU=; b=MA/jknIINAD9KPIUdwcCuD7+G43+cb0hf4IzTxxjkmlNCNdXZ9eF9eZv+J/V1ZqX5U dfAVR0O3VdgTrSG5Ei7QeCnpjFf8pLDiKd/fFx5UTi/QK5Ze0GWGjuMim/zCWZwHKggS FNT5JLfCVJlLuW0HY4kLz3mL5hDjk40U80LQn6123fN0qgUIti3HJgRnR2pgimo2gJwP Jmt7UxGuGLpYrY6NG4ZbK113PqyD5J6rBvBQ40NlQmbM+vA/K59lHJF+mu1niDw04qqW MUe7d02RIr/iYjSzpzhF8pPQ1AV9YA2neBFu9SHzt/TcGrn7xM2AV/7+B778Ac7RZm0g T7BQ== X-Gm-Message-State: APjAAAXohKM/qdzMxFVYDEoZrvDw2q2ttthYbCYBG7/+VWI6yerWL46d Tsn6qvBXAsWNSrfpRj3pwNs= X-Google-Smtp-Source: APXvYqx5k3/BPwNn4+5adOYrObC9HrQ2ORLzinQHn/81eBGVXW1X7mDWtAT9KUbEcncpZ6DHd3ZtJg== X-Received: by 2002:a65:50c2:: with SMTP id s2mr16611426pgp.112.1554550629794; Sat, 06 Apr 2019 04:37:09 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id o67sm46945777pga.55.2019.04.06.04.37.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:37:09 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:37:04 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 21/33] sha1-name.c: remove the_repo from get_oid_oneline() Date: Sat, 6 Apr 2019 18:34:41 +0700 Message-Id: <20190406113453.5149-22-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888179 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 CF072139A for ; Sat, 6 Apr 2019 11:37:17 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A4CE827816 for ; Sat, 6 Apr 2019 11:37:17 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 98E7128A4E; Sat, 6 Apr 2019 11:37: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 462E927816 for ; Sat, 6 Apr 2019 11:37:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726637AbfDFLhQ (ORCPT ); Sat, 6 Apr 2019 07:37:16 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:43692 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLhP (ORCPT ); Sat, 6 Apr 2019 07:37:15 -0400 Received: by mail-pf1-f194.google.com with SMTP id c8so4756364pfd.10 for ; Sat, 06 Apr 2019 04:37: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=IHO0+//mUhxK1MPr5Z2K783mNYx8bk2aaztVe1lrmyQ=; b=EeOAbQB2iuYkeMU9YmbkZBO3NQxDCmZdUp95uxGSkI3Gt5KaM7y6o/ORpZZF6EeXtw WxnJVnIV7uQ8MJ/aIzP54yB27u8huECfm9KbHdvva5VWFZEAB7uZLurL0tfJRF/okr47 l/4Q+tnDVmMZFgQyGxyuGahJzqVNEtpEfLwzDdNcxZnaMe+vwcPLxxD3eTRZYiCowNsi PB3wUHsHj5VWZGZ9n0p25kdln4BokV/jVj+8MBbSAdpMgFgNhAYSGvZcQaBWH4nJgybn +YZz15/KpOptE9ksfvLql99EU18G6NH3l8NeBKzTS9P8ZUb5MjG8bPfNCNx4iQKCP3vg ouaw== 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=IHO0+//mUhxK1MPr5Z2K783mNYx8bk2aaztVe1lrmyQ=; b=Y+wsQlI/JelFAeYqqOY1FCGPoR8tuLhwht3zQ7zGCGiWFqQ7qwgdydqv32CxFG6Nfe CwHkGN9IiBAkWeG/jlt88LKXxe+el5rWEvIU/Z4dy4xAoLv0VS9PFQuPQiO4LQqLlsGs 0IZjFeslGNhONiL6gSHy2swaAUJCHAdTu/HpVgq86aKPh5nT8XXa8ZMbrHnvM28Wg7H2 4X9ODQiaezXJs/ChfplyC8PEF+ofMQzgrfxcKPcjyabk/7GsA2VN++2T2u4dL6K/+eGb zCAp2d9fw1CGUhWMib7/kLv8cV94jrvEjKABtFl25bOoOSAKvIBxWfB6jfy62ps2W9X3 OODg== X-Gm-Message-State: APjAAAU2HQ/eW2XWgI9nOUJve8dpTNzShos32SZFjRT1uQdPA3loW8cr NoXz4XtKRt9amhE6uFMDO7bI10GY X-Google-Smtp-Source: APXvYqw2TDMjLU/HFyGZwV15M9vvk5BNhexB3AV0ganDItWzkLEeD55nU2a3vmKQYYXm6MZd9jTeVg== X-Received: by 2002:a65:62d2:: with SMTP id m18mr17503993pgv.122.1554550635277; Sat, 06 Apr 2019 04:37:15 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id e21sm34254875pfd.177.2019.04.06.04.37.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:37:14 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:37:10 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 22/33] sha1-name.c: remove the_repo from get_describe_name() Date: Sat, 6 Apr 2019 18:34:42 +0700 Message-Id: <20190406113453.5149-23-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888181 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 48D02139A for ; Sat, 6 Apr 2019 11:37:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1C56627816 for ; Sat, 6 Apr 2019 11:37:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1096828A4E; Sat, 6 Apr 2019 11:37:23 +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 9E4D227816 for ; Sat, 6 Apr 2019 11:37:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726640AbfDFLhV (ORCPT ); Sat, 6 Apr 2019 07:37:21 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:39821 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLhV (ORCPT ); Sat, 6 Apr 2019 07:37:21 -0400 Received: by mail-pf1-f195.google.com with SMTP id i17so1633449pfo.6 for ; Sat, 06 Apr 2019 04:37:21 -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=tV7Pu8ExeeZC83xGO7zNWhu0P7oJAV/3/iczI9tiSeE=; b=jYLGgUy6NdIZUbHdGgE4cHcWh8RJJoGX53e45i5mvzPu0DSkFM3qvh04KlBqL4MbgS WS8xfCyDuCI54Kj1385Fh+6GGfVLEa1MGgWsk7XlZIzwl9QmIech7DMouYqMJEK52Sgx +idpr1ah4zJ6sBM6viMK/C8x92kFTR+vYxiFpr6IowYZM77m5pO48TjTfVWx0u1WqfMu 3nWtPnlpEchnvxVF3AOFATbFWo+F89cCz5Ky5a6/K7fSFRt/zwaacFZo3EHaOrOxPeBP dC/Tz5rDMyhkzwhpcxa1pKNUyc62x7kcsSXSG8Hs3eFQwlpHNdBifbmOG9pzEWlkwF+S +G+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=tV7Pu8ExeeZC83xGO7zNWhu0P7oJAV/3/iczI9tiSeE=; b=ijKmEllI3UkOzHWO5w+OgdfP9Rn+WsXmPBmRNknNJlDRapgoqP9pWgzpAbqZToBznr PkVKpUv/oe7cpHXYMEhQ3+/bd9lenIK6R9t9uTF5UjUAALBYF/3+gOq8FtcS3CRP6htC GC+4zgMJkLEcdSqNLL2IZ2iIiw9ISygMzbpztThHu5+iEKWuK1olVf4WzOgb5rKEs3Sk QgwaCUsoCGMvG7fWztysTpyLx2tsBhg4a5IZtDuBqB75dNT3F0VW3Q8T1Yvfna8H0D0f E0Ay/UQ+/B4e7HlmA7Xkf2Fa6El6yTkAhN6xNxlC8eeTEU0dCAaYnuHLWto3/U7BXaP7 EaTg== X-Gm-Message-State: APjAAAUsWQBN0yNf1fmShXmBLifF6P52AXk0u9g88D4WRDrFxEvIa98p weudM4GoHodEB1jihTFjq+k= X-Google-Smtp-Source: APXvYqxGtS7/cpz97bPQbV+X+Xoqf+fScsx6GVgB2ZIVBATsRPZL1VVBaSUedpRlr69Z80OWJ87P+g== X-Received: by 2002:a63:df4d:: with SMTP id h13mr17404191pgj.220.1554550640696; Sat, 06 Apr 2019 04:37:20 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id b13sm15465837pfd.12.2019.04.06.04.37.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:37:20 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:37:15 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 23/33] sha1-name.c: remove the_repo from get_oid_basic() Date: Sat, 6 Apr 2019 18:34:43 +0700 Message-Id: <20190406113453.5149-24-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:44 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888183 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 CD9E9922 for ; Sat, 6 Apr 2019 11:37:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A2D6728A4A for ; Sat, 6 Apr 2019 11:37:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 96A8127816; Sat, 6 Apr 2019 11:37:29 +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 D599927816 for ; Sat, 6 Apr 2019 11:37:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726666AbfDFLh1 (ORCPT ); Sat, 6 Apr 2019 07:37:27 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:39826 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLh1 (ORCPT ); Sat, 6 Apr 2019 07:37:27 -0400 Received: by mail-pf1-f194.google.com with SMTP id i17so1633535pfo.6 for ; Sat, 06 Apr 2019 04:37:26 -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=1VrGbTQQ9UY3cc5ZVT/2Jzavz0lrpN5XvZvKzS958UI=; b=OedrnUbZGt1lP66wbwW5/6Oc9DGgJirSBm58vKeRSGRtjtvIZ42oPSaIw3ZVEWW/vs h6nlpXb+qHiY50lXB9AQmuZH2u01D0ODE4VsnVKmReIScbOCi9blp4YERqWiYJt+M1Il XS4tOn8EoNr5r3kX1wiGmtof7jJ8u+0/ZsZ8Zyw77HeS9+uBgW6indaWecEWZ8fpI5Fb usjq9mP2zcwTpTYgwTVWEMqF6n8uWDtzxG5I8vadXBcNfOo4th8yjQwN4XbwUEUECyCM rfYZ4VDmYuXktUCfXMUZmx7AfQRnXLiUWNDYrGA1RwSaUUN2ZNLhsyRwFpb8AxXIAH4p TnAA== 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=1VrGbTQQ9UY3cc5ZVT/2Jzavz0lrpN5XvZvKzS958UI=; b=cNP7sX9EU6MdkA8BZEKdme05w/gW+gGGzxXjauUvowxLiT5XwiIpLfDxlyHrGyqnwE YKxLZjI2kPBwdnVdk7UNJ0He1teKjXPR6xR80CeXETL3UU0vnyc8CVOco8mqTLxP/V4q lxjr7OloGOA6yB5o714ad0vK5z/ZNS0w98btYV0JTPRqprGLZGAQJCYIpbH+YoFdfjEf DPZdSALBo3UK9fiIULPqbeOHuGxqVwhy/pIZL6B4ZQ5RZqLcceJR3fXJYuKpFtSQUHE+ rNpQNWyXDyv5y55cguVHqltzvU/vDe/NquBPmyTqUesejrdEbDwnBXORPrmmmZ/D8kU1 dBPA== X-Gm-Message-State: APjAAAU0G0hZgJQCyiZgF2wFfCtHYjGyMxwwfe0KEUtMPdr5/7qCIMHH FZuq4vo2ePHxJjwST0Cj0KE= X-Google-Smtp-Source: APXvYqwtRJSEPXV901WaYn1OLUYRSdScKIlJMey9tfqS7wgSa5svCEIbzjixrNHiys+FeocUG0TvcA== X-Received: by 2002:a62:6985:: with SMTP id e127mr18395424pfc.188.1554550645988; Sat, 06 Apr 2019 04:37:25 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id e8sm56123013pfc.47.2019.04.06.04.37.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:37:25 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:37:20 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 24/33] sha1-name.c: remove the_repo from get_oid_1() Date: Sat, 6 Apr 2019 18:34:44 +0700 Message-Id: <20190406113453.5149-25-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888185 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 B7442922 for ; Sat, 6 Apr 2019 11:37:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 87C0D27816 for ; Sat, 6 Apr 2019 11:37:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7C4E828A4E; Sat, 6 Apr 2019 11:37: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 24EE827816 for ; Sat, 6 Apr 2019 11:37:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726668AbfDFLhc (ORCPT ); Sat, 6 Apr 2019 07:37:32 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:43709 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLhb (ORCPT ); Sat, 6 Apr 2019 07:37:31 -0400 Received: by mail-pf1-f195.google.com with SMTP id c8so4756582pfd.10 for ; Sat, 06 Apr 2019 04:37:31 -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=J/RUO8ACXrqeLwgRI/QX11nIxHpfBgPfHg/OeHAlD+4=; b=ucDL9TuqhQDZZvCC/c9pH84eZZQ92AtxZdBKklZf1Ol+raFRmie5YdwAfehp23Szdy YuWH6hy5GBgshJWtSZCjgabWQyBzCKwpTJE+gQfa39dlBIWCNDpQmDA8ezST24UA+btP CwNI5eIDzydvCxiNU7w2pF/5NTBUxrc9S3+GQtUgBmak1frxEA8SASAHbh7ld5TiGLz5 jOI3hz/oFy73aH44q0dJCStEt2IzKMKmr0bbafG4ZT2awiLvXHkOFkHMAh/5Re+FnAbR 1XISQsVCLQU5/fTDV6goRU46pmL7NEjIvLWA+7/cRWX4gaJH3tQNSRbqyr8CAOCo935i NriQ== 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=J/RUO8ACXrqeLwgRI/QX11nIxHpfBgPfHg/OeHAlD+4=; b=cX0XQWyb8tH6ROeTWpGSLYrzcdtv0wNtiNeYi+1sFqRmBrYA+P1X+jt5EuYaThfz0w TGWa/wcoU6npuj0lChcBOAjtWJkBkLNuDN6g6UVa/aPyaECOm9WLZOgbiM3NZNp6OWfq daExBxr8yP9esdTaVwKnyNcEkVzFA+tHKibMMpT9niLWqdP4NbHc9y2ja+t6ikTc3I5a PX2EFTFjW+gr9UHhZGxG7BHjIpotO5RRf9x9RxjhCehQCN5RFkjKUJ9OHUc3Yx28pRxb /rmmVnbaocbvQgs8qCyZJmD+pdfUHzZVJlgtyD9LzQ3agp67bzlkHgKpnRqRPtkrQSHh l47Q== X-Gm-Message-State: APjAAAXfHfo0fPVvIJp35/XJIggYRpLtLCfygOOhFyLr/0/ik8B4NaXF sYDJIGIpCDNVPeJlOE+S3S0= X-Google-Smtp-Source: APXvYqwEAkJByykX4P7qw1dsEs0dWVxNds/rwaP7iNspbZqEklns02lbkbM94cKkOsZ4rF6+G13gDA== X-Received: by 2002:a65:63d5:: with SMTP id n21mr8610267pgv.330.1554550651198; Sat, 06 Apr 2019 04:37:31 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id u26sm33712429pfn.5.2019.04.06.04.37.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:37:30 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:37:26 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 25/33] sha1-name.c: remove the_repo from handle_one_ref() Date: Sat, 6 Apr 2019 18:34:45 +0700 Message-Id: <20190406113453.5149-26-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888187 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 16F74139A for ; Sat, 6 Apr 2019 11:37:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E158727816 for ; Sat, 6 Apr 2019 11:37:38 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D5E9F28A4E; Sat, 6 Apr 2019 11:37:38 +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 79FA727816 for ; Sat, 6 Apr 2019 11:37:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726672AbfDFLhh (ORCPT ); Sat, 6 Apr 2019 07:37:37 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:36203 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLhh (ORCPT ); Sat, 6 Apr 2019 07:37:37 -0400 Received: by mail-pf1-f196.google.com with SMTP id z5so4765468pfn.3 for ; Sat, 06 Apr 2019 04:37:36 -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=1HRwL2T7MODfcXrlBYA8wLAi07ntXHgzSLd7OPKp/jk=; b=nXr2R6kCykoomacwVFuuP2Qg2v8cHLRdyBXrxfnMKHgtdTvAXA6KUItKv4TVhgoHAC eqkCWmq5DLkTAmdhW1nBx0/ATQ6ql2oDKAuxw64H/BwXQ53OK0QrEFy8ohY8XXEeeBL1 PHzYtVIfj/uPiJUffjKN1Mn6T/ACz9V2ELrjB7QeETwWJehF+br4kGZ9TFGCROjGefRg Z8AKUJ40PR58fscku7f0OlFuRLDTl0saZSJolrAWVDmoBjNZEDHx6nhAMEq6eIV8HMPo BM5FTmk0r3fq7tLGA4BN+J0irF4ik8Q8YTkqTkbZlkuCqMlzg4l29J2bwnf13c1mQwHc xZ8A== 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=1HRwL2T7MODfcXrlBYA8wLAi07ntXHgzSLd7OPKp/jk=; b=uUICwBviE4AZ1XBHRluOafjFN7kZraowYmfhzsJco36aWH6g4loJVr3iZ5yn3ali3X HL3Jdk/zcACfaT+9bEQryhtmKYRKx5QM0VkKZzBv2YgHWQFxWdooRg3GUu/ShdRPV6Dt U+nrESXhhHOLZe4u6ZNilZX4YBuaGGlYroHpPc6iXZ/f0/rYvkjA06IhtbkJqtTrk09t WHR4Ga6iKCxbMlTfYDybF1AIVLjHwiBA6KW4y5B0l/CJnjYFzZO8Lq25CJAYUNJkwqEm EQwYQsWiPPIhm5DL61xt7xStT/MVu+gNGrIAMW62aB9lHozUqu7L/LmFro+nJmVYjZge JE9Q== X-Gm-Message-State: APjAAAU3Yz29AmvGvxa9HBQkTzXhfh/kkZ2DFCgdpanjUOutgKTcNllA t+gQjvLoI3qj+PV1E7y7CuyotNsS X-Google-Smtp-Source: APXvYqyaoe9NgdhjS1EnkACNVDKR4BXUxfDUAG1hAtesWX9xo9JINzbF4C9zAQY8WC2U9G59UgmjEg== X-Received: by 2002:a62:448d:: with SMTP id m13mr18402782pfi.182.1554550656559; Sat, 06 Apr 2019 04:37:36 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id r11sm53091015pga.87.2019.04.06.04.37.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:37:35 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:37:31 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 26/33] sha1-name.c: remove the_repo from diagnose_invalid_index_path() Date: Sat, 6 Apr 2019 18:34:46 +0700 Message-Id: <20190406113453.5149-27-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888189 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 745AB922 for ; Sat, 6 Apr 2019 11:37:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 455BA28A4A for ; Sat, 6 Apr 2019 11:37:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3809C28A53; Sat, 6 Apr 2019 11:37: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 D7B1028A4A for ; Sat, 6 Apr 2019 11:37:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726676AbfDFLhm (ORCPT ); Sat, 6 Apr 2019 07:37:42 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:37072 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLhm (ORCPT ); Sat, 6 Apr 2019 07:37:42 -0400 Received: by mail-pf1-f193.google.com with SMTP id 8so4767611pfr.4 for ; Sat, 06 Apr 2019 04:37:42 -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=1353qhiBFkvg4CjMPjTgaQAM7MfVk9j47bxGFKrEJdQ=; b=Peq1eYnpBSK+Gu+mxkjAx5UwG8pzJcwfD2aq0K7+2yDo1GpcGtgoYKvT+QkOGaL6dK JWAhA/RmWd7405PQJdrCK6a3tANiGalMqnW7xyVEERDgvIU1Li5efJ47fWnRzIFsRUSE iKL7XYaM7qYz5EiOggqKij4j04cedC2MGu9Lcr2MjSvc1gKFhwMN6uEqX8xzHfL6nYlx kRJG+ZMfAZgymq+qnxT10Yx8fkigbdVqD/yPke9QYGyQ1j38/TgbZa1W6UzdSSBa1Xmx cL2QAkHiOHiaojjXvixwtEe8agPgAvAG/F4oHGa60CRgE0sw1DMT8yHqg/tVBvavXfUZ 0MfQ== 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=1353qhiBFkvg4CjMPjTgaQAM7MfVk9j47bxGFKrEJdQ=; b=KyQS8o7e8vawWiPXmwMKTkZ0vNWlhzdrODELhyfl6NxKL6Xylo/UZxuRnv8lTH+WRV ioyT+jfkkDrBjJkaZ1VWuU7JfwepzckPiYvS5lhPQFhA59reZ4teFSjDmKdo8OWJkDGK ++icyhBIAAiciUiR7hwindTAKQN7WKAfH0ZmvUdzhCt9WPMyOSH91ULoeePQL4yymZqz l1x9WJ22YJoG78Qyx/umd1+hG12JkgmJ4/FQNcm/at5dhuS+ks01L6ssfdnDpnXAu/Ug jILogWMUXY7mnOprdpFP/h4mbIl9uKmKsKumWibDP/3E5DRuXp3bdEszqVzJIVVdDJbX Vr8w== X-Gm-Message-State: APjAAAW2pyH4o481suqxX9tdW+vR0b5bdTLOWXERQITlg60ukQ+0zeAg Vnao99/wAb8xrb25aK3BQiA= X-Google-Smtp-Source: APXvYqw4N/VkuN0Uq7Ki96RQpk4mQ0ntPTCzjSxZs828d/aImiIPrnyjWxF/80WWMDitZDmfroQaTA== X-Received: by 2002:a63:465b:: with SMTP id v27mr17722260pgk.165.1554550661964; Sat, 06 Apr 2019 04:37:41 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id w18sm39504247pfg.75.2019.04.06.04.37.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:37:41 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:37:36 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 27/33] sha1-name.c: remove the_repo from resolve_relative_path() Date: Sat, 6 Apr 2019 18:34:47 +0700 Message-Id: <20190406113453.5149-28-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888195 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 504AA139A for ; Sat, 6 Apr 2019 11:38:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2353428A4A for ; Sat, 6 Apr 2019 11:38:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1828528A59; Sat, 6 Apr 2019 11:38: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=-3.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI 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 2CD6F28A4A for ; Sat, 6 Apr 2019 11:37:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726680AbfDFLhs (ORCPT ); Sat, 6 Apr 2019 07:37:48 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:38870 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726467AbfDFLhr (ORCPT ); Sat, 6 Apr 2019 07:37:47 -0400 Received: by mail-pf1-f193.google.com with SMTP id 10so4766902pfo.5 for ; Sat, 06 Apr 2019 04:37:47 -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=Vod4aOH+wA+JD7yNprXuqsVCLUsUss9P8ReeepwUd1o=; b=I5qgV6S0tIHK6xshYlwauSiDpgESTS22vAbQTQ2pn893l3hl+G6FOamCMsn5R9nz6S cQ1iXt/UG/AWLzthu02P0BBYarx/khXr78FtuL5JUN/FGamjlS3A7h+u14FvsZDiWHox 4L62JVWABSn7Rv1GsSq35biWf5znVbYpKTBfiktubW9DlsrUOq7EDtp1Eny7g+QRkYXz EBTkgq6+zkC0mGpmwGC+kBWxm6UnsmNh3Jd6k72XsnDV4tszWO3VQYu5DyeNIYgPTnkk Wr7LqETL7VrbE9iyGfDBygVBS6XsdWgKF8zXglpEULldofHhPEJb9sfjS95bbONg7oTK 1vcA== 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=Vod4aOH+wA+JD7yNprXuqsVCLUsUss9P8ReeepwUd1o=; b=JIl3s4SQSP88BnSJwio0pKyv9SlPEi5gEqGHj8l5GQdBofPw4AGN5Kot9WC0Zk0uFl mWpgc10G6VEx5XecUmc9TV/a9eaRTEblHf2JEqWuVt9vTF244mQbxkIpt6EPhTGIAvPf HpUMFSKVmIow14OVfUflsnh91TQ97MtNRObgeR15KYYJGTMZk+DFX//oxMnuQvIY1Twx C0ppjGQ22gQ3CRTZrDRrrgBVzWaz8EShOTsUReEKwaBhTx2+Kd9y7W0TRRwCgaEieVX8 uqLBsrHR58CIJtJ7QZD6J/D4rE5pXkBpNBSF0DCO8QlY3sx4ZJZXg35MuLGPAlfmNqLa YcLA== X-Gm-Message-State: APjAAAUzwE6yOuoaGW7OzsrU/Tn+qZ2AY+pTrdllKv91+4n+RpMkF8+5 1dmtnozVoyPtoltcZseftcs= X-Google-Smtp-Source: APXvYqz7Q6YrMLb/Bfa8CllZind5zribSfPcfaUZpzZ1dbuTsK3qhgGloWrzKfecPzE+lGkdlPrLZg== X-Received: by 2002:a63:2b03:: with SMTP id r3mr17167297pgr.105.1554550667230; Sat, 06 Apr 2019 04:37:47 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id f2sm7556332pgc.30.2019.04.06.04.37.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:37:46 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:37:42 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 28/33] sha1-name.c: remove the_repo from get_oid_with_context_1() Date: Sat, 6 Apr 2019 18:34:48 +0700 Message-Id: <20190406113453.5149-29-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888191 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 8BB56922 for ; Sat, 6 Apr 2019 11:37:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5DC3928A4E for ; Sat, 6 Apr 2019 11:37:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 4E12328A59; Sat, 6 Apr 2019 11:37:55 +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 EC83B28A4E for ; Sat, 6 Apr 2019 11:37:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726591AbfDFLhx (ORCPT ); Sat, 6 Apr 2019 07:37:53 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:34288 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLhx (ORCPT ); Sat, 6 Apr 2019 07:37:53 -0400 Received: by mail-pg1-f193.google.com with SMTP id v12so4506468pgq.1 for ; Sat, 06 Apr 2019 04:37:53 -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=hKjJIvSfH8MGf6h4/kuMUZwGHNx2sxD8tRhAQUc8aZA=; b=AG4EQQNPni2i/Gv+Bnd13yq/0OeJa8DEYomBhK5j2W+a+LTLoSROWpMXsg5aXrEUxy V0U1PyRpjHic6WIdo0v11BWIgG369jq5rZLqa9oOePOUDDpuraJkrbEvCufQjisWfL4Q s46zN1oWqRHJIy7EUoy1ziTkz6WD5FKPjPpqcO2H7cYbjOvVJxojCLh8HOzfuYCo6e8N 4X9xH9/J/eteMYrgb0MdIxrc7zr8k4k1LETosIWCJ6BVwUETOdFt81rpM6RfhOGsvGPX cJU8DgQvxwLcosBMWjBuX6VBFeJnQ8DFaV3rx4t0hIT/Rd8Fd3SIHcI5qytrBR9JQCvh 9hDw== 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=hKjJIvSfH8MGf6h4/kuMUZwGHNx2sxD8tRhAQUc8aZA=; b=QT7v4xBwGixc2MtAQiLp20ntTn6PTcGqMUqQCBPPbmDKTOmqsDomTP6gPfQX0dL3hn xOYsJhHtW98KDksQU4lf6E018UH936GFwfUelTIlmOdsIGBlKtBIKtclXK2HZZCroKt1 N3t7Jya0fns6eVINYd8p2+ETJJyZDh1b0A19bVxmQM+l8t9nhI0OId5RUXO4FUtKEeyn CS3LBBGKkpieYu3ipiNCHMnrrvu8d9uVmuckpKluKvlcv2t6zH5S75ziXCZW4X8Ntqio EmeR8O90AY9F43w9dLt8FswlNX6wMsQ3NZ3wR6WYcIr+C7xwvfuy70lOZeFtjHqQZVj9 CphA== X-Gm-Message-State: APjAAAVs7Ud5GLowiHtk0N8W/NIwgRGVKJyp1j/OirOwOuF83x4BU3c+ PN+ig7/GmszFwU7y4S/5Pe0= X-Google-Smtp-Source: APXvYqwlot2U9GXKs/wSD6DcJVXQSx40rlvRviXnZ6LA0LyVLYfQB75qXFDeQDh4E/QtrgEUAOr3NA== X-Received: by 2002:a63:d5f:: with SMTP id 31mr16765729pgn.208.1554550672800; Sat, 06 Apr 2019 04:37:52 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id a72sm7891355pge.0.2019.04.06.04.37.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:37:51 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:37:47 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 29/33] sha1-name.c: add repo_get_oid() Date: Sat, 6 Apr 2019 18:34:49 +0700 Message-Id: <20190406113453.5149-30-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888197 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 40EB7139A for ; Sat, 6 Apr 2019 11:38:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1543D28A4A for ; Sat, 6 Apr 2019 11:38:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 099BB28A53; Sat, 6 Apr 2019 11:38:01 +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 F351C28A4E for ; Sat, 6 Apr 2019 11:37:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726607AbfDFLh7 (ORCPT ); Sat, 6 Apr 2019 07:37:59 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:36226 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLh6 (ORCPT ); Sat, 6 Apr 2019 07:37:58 -0400 Received: by mail-pf1-f194.google.com with SMTP id z5so4765808pfn.3 for ; Sat, 06 Apr 2019 04:37: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=kMiXl1MxKUOko0eG2ftuaNwMJYbmJV8Dmae7pks8mVA=; b=cbTq3NP8NfKC7EJkx1M0s2URiY0xkkIdGDMP+nUCt8VXF9ciVNAX4bNtJY82beCvno WLKRSWCzU04t4iQMxXdLkvNxc7cq6r2oa/oAM4aXj0zEUxhn/99iSraIb9iboti1MACy 8JOcXQk3s8GR/o/MifWOzxgUicph1FEmY1sxmcWwM/u3u8SnbJ27HyTr7H9WNx3B7vZJ 22HUH+2nmmLyDp5GMUk2/s5RsKQUmh2Z1SYjoTgwpuPfZV5lmoBSxI/zyI2Z3/RDFNpH aoFwjIViqmzdhcLlhv1P2x0k9c8KsiA96Y2tgAbXddZEdJGqLy1pgtgKwQxg/HJUoIsy Q3/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=kMiXl1MxKUOko0eG2ftuaNwMJYbmJV8Dmae7pks8mVA=; b=thIzdJ8kFk9CIEzDVSWplR7q9sRhcoOT19p6drTfrqq7LN1vD+88PFuvjEuGJYr0B9 uWCs6+IfZ2vUZ2P8ssMqWLU2fY0+5cxHmEcDO3a5WoohVmId5Xm+SSZrQzN/oA4MXXX+ Vecym5Yl+oGXV1OxpdKSCnN+Oi7JEZFXt0MPN/GssFxC1yaAK9WIvV0IGHbDRKWdOjS/ CzEwY30NKDCaSICvBdTURs6qiv9Wa7sUGUJPIwvoliG6z/j8A8RUoYt7T+lHiF72giwO EEFxJaTMHz9MfXZXz8ichl/8ZVTmolcxPSRPx9mC5yp1acvf4j3neq/HlVkJZbzGxE8K zMHw== X-Gm-Message-State: APjAAAW+B6occg6/1yn9cA+I7tGZhsfsh+dsgBGHS18aHde74G8h3qGB sOdhxoSY0a/LXKgDjvboP373y95f X-Google-Smtp-Source: APXvYqzyZiLMcGJcSDmrzePEmNQvZdIUd8rjpYRWAk82/ioW+ynIvhwSELsp8hdPpjX1rJsV3jwnaA== X-Received: by 2002:a63:5a1d:: with SMTP id o29mr17320459pgb.320.1554550678088; Sat, 06 Apr 2019 04:37:58 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id h127sm3861361pgc.31.2019.04.06.04.37.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:37:57 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:37:53 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 30/33] submodule-config.c: use repo_get_oid for reading .gitmodules Date: Sat, 6 Apr 2019 18:34:50 +0700 Message-Id: <20190406113453.5149-31-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888199 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 EDDA3922 for ; Sat, 6 Apr 2019 11:38:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C23EF28A4A for ; Sat, 6 Apr 2019 11:38:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B5E9728A53; Sat, 6 Apr 2019 11:38:05 +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 52C7428A4A for ; Sat, 6 Apr 2019 11:38:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726653AbfDFLiE (ORCPT ); Sat, 6 Apr 2019 07:38:04 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:40121 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLiE (ORCPT ); Sat, 6 Apr 2019 07:38:04 -0400 Received: by mail-pf1-f196.google.com with SMTP id c207so4759333pfc.7 for ; Sat, 06 Apr 2019 04:38: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=WiTcqjXHjS0GDmkL0Ayotb8v1V1CzkGfFwAIuM5mr9Q=; b=CtgFRSTBvpMaXovJwzJ8yhUcDFMW3mXFISNw8v+ZNBLWK5YSusZxwTPIIMy+zjiHlJ vqAyVzWwz2L5Gww9I5DOCKMvew7KehLyHaCBVwoypT2FdSDo4YL3XpLJyQ16+frTPxvb 8yknCscuTm7qPcY4a3oBv5orSP9Cn7NoISTrs6IaH2Dm3iwMFSB8f9OmmXlt6hS/jkeh hwD07tJ7ChUBV8rNGcWtkqiyuU6gJ5jaZ1fig0NFBaWa8WdQI/etEefYwQTDvHDIRrhU VxOsPGY9eUv6i/lW4ZeSPEJ3cu8K4zmjGh5eiZb0opmw/O5bGp8Ypmbzq5sZGMiuCgsk vv0g== 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=WiTcqjXHjS0GDmkL0Ayotb8v1V1CzkGfFwAIuM5mr9Q=; b=aWw2nnCruBBXVtPrTj3g3QAZxWts94uWUYZhDX/lJSuBWDNAB+tlfYH2uX2jOSa+z8 zKGEErYRJ2dDsnetunKQCtqfFxOAIFOfPp3ckgwtcrxjzeSYwk/Jcu68qlLuKxb4WfLk g4JzwlRe2kj1WrFGMDvG/CtJ57JdULF4gQrLEUDh432CDKPgVEWe4vWXbcKEyk6xoGjs wBYP2JSAHQEoYz9wuW2DmvL91Ip7DSfqqZtbLonY1xnpT3kSmXpUKLKgkFA500MVzxPZ BaaNOSJfZNhbM5Z/4F0haF+teWsYJJ9S7gHYpHvv7eS/63kwd90SlinP2TLbtMVNtSHO ne/g== X-Gm-Message-State: APjAAAVIcsBBpyEOJF7okQdwTPQpSbHaEkXfHFdjhJ1ywmNS3V8Helzc fHYoNlCxpfY6zE8prW2lJfI= X-Google-Smtp-Source: APXvYqwSUty6FLsSWoRWYUi8cz6rdGsHCpv6dz0NDZVPshsEyuBlz357sUjSfPxlAVYiFGvhRnZ14Q== X-Received: by 2002:a62:2687:: with SMTP id m129mr18001873pfm.204.1554550683395; Sat, 06 Apr 2019 04:38:03 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id m16sm60924750pfi.29.2019.04.06.04.38.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:38:02 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:37:58 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 31/33] sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name Date: Sat, 6 Apr 2019 18:34:51 +0700 Message-Id: <20190406113453.5149-32-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888201 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 9A5FD139A for ; Sat, 6 Apr 2019 11:38:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6DB63287C1 for ; Sat, 6 Apr 2019 11:38:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5EC9128A53; Sat, 6 Apr 2019 11:38: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 DD883287C1 for ; Sat, 6 Apr 2019 11:38:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726501AbfDFLiJ (ORCPT ); Sat, 6 Apr 2019 07:38:09 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:38893 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLiJ (ORCPT ); Sat, 6 Apr 2019 07:38:09 -0400 Received: by mail-pf1-f194.google.com with SMTP id 10so4767240pfo.5 for ; Sat, 06 Apr 2019 04:38:08 -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=h4UsmkkHNE/w67i9pZNTRUVeoBYpvfa1184swHxAb98=; b=hO7smCy0BksyM825VhcVBQUacQLZDCIgVkXe4EKwE+0V+sKVlBnrfJL6XEyCUrJgVZ +o1Wnhfb1n8LwMbewhB4RMTg+i2qrv/cKtP6SgSS7GhkB7u00amtjuZY7x3nPDUvqE5z VNTFj8XZezPy2/ngk3/C+rtVFe4eEXVws+j/3mYoSSAh0Y7/J/oU60HlL6QKLQQ72hpq LA59+dWkiBhQBu0VBgs+sPsz9phkqmbPEXLaUZpMNnOpKgStnQem4fxjeMvDp1sSM0ss Ca4DaD7305wUFyw8hQqKGOXfso1lb00pR2pEGUWy39x2c2dl6xcG7EiA7hhJyY3LZXK6 rFrw== 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=h4UsmkkHNE/w67i9pZNTRUVeoBYpvfa1184swHxAb98=; b=BvW60mwDulkYMek4ci2qX465duNxQBRgV/obnKiL1Gq9F4B/iN2P0o3KEr/QxB77ai XzZ/vPa7gPyuGljC4f+nGQxR9c0GE3O09KczFF4zw7Fy49RglQb/4NY2ykU8c6vhHgWb U0Bs/u+49jIbgw6ZYZ3VMYAE/H+gpbKfQcxB5mwGaThmIy1RR+Ut8GhfssT8MA9IGo6v 8dm+Jn9YhrpUqzgYAWXAXc4l+Oq+TCBeunlj+Xkh2pi2DYEiAxQVanRkdCRfMdC3xF59 ezFi7vIe+gw+SNAe1z0nvq2ACCUAnF7cvMD4Rb5j5wZzV9xu+6E9F2befG7nZLiclOwI Loog== X-Gm-Message-State: APjAAAV/losLadJ/LprBJeKhknRWoSTolsVKr78c6W9yrStHO8L9YWNS IvvnbOrAHoPRjaxhzzW9ncCYauYi X-Google-Smtp-Source: APXvYqxBBHOphIFvrRBPwLHF15rkMeuxS1BY0LO3wez82bqFYJg3xI7rhf8xRs2p3NzclTLv13C7cA== X-Received: by 2002:a63:3d85:: with SMTP id k127mr17455292pga.152.1554550688580; Sat, 06 Apr 2019 04:38:08 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id i79sm53667249pfj.28.2019.04.06.04.38.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:38:08 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:38:03 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 32/33] sha1-name.c: remove the_repo from other get_oid_* Date: Sat, 6 Apr 2019 18:34:52 +0700 Message-Id: <20190406113453.5149-33-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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 Sat Apr 6 11:34:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10888203 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 D49BC139A for ; Sat, 6 Apr 2019 11:38:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9F2EE287C1 for ; Sat, 6 Apr 2019 11:38:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8DCB128A53; Sat, 6 Apr 2019 11:38:16 +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 22676287C1 for ; Sat, 6 Apr 2019 11:38:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726685AbfDFLiP (ORCPT ); Sat, 6 Apr 2019 07:38:15 -0400 Received: from mail-pg1-f194.google.com ([209.85.215.194]:40255 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726036AbfDFLiO (ORCPT ); Sat, 6 Apr 2019 07:38:14 -0400 Received: by mail-pg1-f194.google.com with SMTP id u9so4487210pgo.7 for ; Sat, 06 Apr 2019 04:38:14 -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=xHihulZqB9t7pgfq8tjomSTv/8DEfubw/edGbtbh7Pk=; b=N4YFveUQhUQzNMxDfFQnhqwDjvkbTcuoSQZfIx2Na9L8T9E1qI34XPp2BCuWOQqrSg nusBUkXXJMzQGshFyXnXxEzEF5TVUeimcK3/FExfyHVNmgnVcQT069rsLFUNJsXxaiSf h/k2yNPkrc/mdOQG1iEVig9wIv1bLyLoHLTmKu5eckXUfL0CGVMxoVktI6nofvsJYxwO THLqpxaWdQ5ykWRlddxI7LtJvspc2bzrt02lP120cR83uGiPBdfXzuyyC4QlQ+qIR9+5 v9FV2ZCjhLrQEuruTnn7KBofyUiBMJOF9EdDiIkkpqQqhnMYswjM2lh9fRYosmbjmPTz g/BA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=xHihulZqB9t7pgfq8tjomSTv/8DEfubw/edGbtbh7Pk=; b=d3MQuLspNcEiE3Telerfa3FxPhKUZPEB7UZ0NuWCNUoyrZxqDqoCGrStr+gW9arZoh hv06FqMdLnsYJzxhwywOHQPp5t5vLmo1byTt8/RglKWzNnFACyLWgO4a0UUynUZwa5ZF h1PQPTMcvco/DN2pJ7N5h2KT1qtv5n/kVkJaYVhNFXZqmgMkJcpqZs2i9Y7CXmgpl3tt HX7gVAq61FI/eiuaIleIPEJnOn6znfsjw85aIJmJGrdTas7+j1Ny4QNHIOpxxXqCB+Us DqYScdOQxb6/r5vNIhV6GsQMpFry3ZtB5MP6OQbB8lWarTjS+G8c53ITyV+c8tgUC5hU Plig== X-Gm-Message-State: APjAAAVjOlu3WbVkRET2yvMvARLi4zUJi29aTOwnV3QvmIWkXniMoNXI gX9Ggqq5jLg8wm2OxTL4rMeAXz6Y X-Google-Smtp-Source: APXvYqw0PetbmPxS+HsR5/PZAvtuKLhzsGe8QQgKjH38Kcz58mma82hB27k0ps383dm2QeotllHIFg== X-Received: by 2002:a62:b602:: with SMTP id j2mr18526426pff.68.1554550693958; Sat, 06 Apr 2019 04:38:13 -0700 (PDT) Received: from ash ([116.102.217.71]) by smtp.gmail.com with ESMTPSA id i31sm43192761pgi.36.2019.04.06.04.38.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 06 Apr 2019 04:38:13 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 06 Apr 2019 18:38:08 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: pclouds@gmail.com Cc: git@vger.kernel.org, gitster@pobox.com, stefanbeller@gmail.com, szeder.dev@gmail.com, Johannes Schindelin Subject: [PATCH v3 33/33] sha1-name.c: remove the_repo from get_oid_mb() Date: Sat, 6 Apr 2019 18:34:53 +0700 Message-Id: <20190406113453.5149-34-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190406113453.5149-1-pclouds@gmail.com> References: <20190403113457.20399-1-pclouds@gmail.com> <20190406113453.5149-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;