From patchwork Sun Feb 17 10:08: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: 10816923 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 E60E61390 for ; Sun, 17 Feb 2019 10:09:27 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D30412A139 for ; Sun, 17 Feb 2019 10:09:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C69A62A164; Sun, 17 Feb 2019 10:09: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 EB77C2A139 for ; Sun, 17 Feb 2019 10:09:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728134AbfBQKJZ (ORCPT ); Sun, 17 Feb 2019 05:09:25 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:36986 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKJY (ORCPT ); Sun, 17 Feb 2019 05:09:24 -0500 Received: by mail-pf1-f196.google.com with SMTP id s22so7079967pfh.4 for ; Sun, 17 Feb 2019 02:09:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TkBv31JCMg+KHs34rsN0C+oZWm8SedWnaKMf8OiNl6o=; b=jOHdh7+boBcy7YuKrXAi1j466cbNLgG8xiEo9xjdAEEY4bJfksGSsuZJytybk1j6gM UBH6dy0945JvP3kFlBbwXVTAvqL9kkevxyrmaNITHgKxDI8ClvoYByiAz++Ks8E9iLMx x2Btz0yNqTOEoQnM+V3AE8aDsVg2SuSlcjvys2/GEcS1b5Zi9EZhQ2VUi46byWg1b0lQ ZgPtfdEbSy3sU188SRmJF2lKxSlDzN49AcPiVt/GosGqwXlavAsr3Qlk1h4HIEAKr7za Sl0U86oTuY2p8thUbO4EOwI3Uo0wPEtFHxLW+OvkzsUJHmAJhgZS6GSBkwqCB/gHWOrG tkvQ== 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=TkBv31JCMg+KHs34rsN0C+oZWm8SedWnaKMf8OiNl6o=; b=sC5muncYcnoFhRUoP+fpV+cuKoAlE184qK4gGfCfP2RNDXVvjM3YMACIjS0OmDoEcZ 5BDVyo9tPPnhZpmdt1DgZt+5OiNk2jKJP8MzG6vPSYHz1Ms7k85aZ3nXuzvuNLegvXzG ySZdQ5W7laR/kEFshOjuMwZDuIP1UoQWj9bP9sJv9dmcF/vA8Q2RgtVls3EehKumo3Zy q61EUYr1ZS2pa9nUGSWDXd6VbmFnh2F8jf9DU1ku5EtqUjkFCtW+ETL/46wo4oBGJd5E yIuNXEG9hICowFQwgGP5gNn1pL/F5MDh68X0VcW0/aILpFqicsFDp6woLl7tqntrm754 GGdA== X-Gm-Message-State: AHQUAuZzmQ2fn5CGZssk95gyENe5NCSNES9FUcHENLwgF9YXDsXOOVtt iO0rSyoHRnkjElIWRBF8EUaz1WsE X-Google-Smtp-Source: AHgI3IZCRqZ+4NtzNj4rlxsfCP4rt5rT2Y3FE915JDK9i4MkKMjEJjiywWwF5mmEECBnmgiRUX7xrQ== X-Received: by 2002:a62:e214:: with SMTP id a20mr4201194pfi.192.1550398163577; Sun, 17 Feb 2019 02:09:23 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id v1sm1140794pff.9.2019.02.17.02.09.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:09:22 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:09:19 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 01/31] packfile.c: add repo_approximate_object_count() Date: Sun, 17 Feb 2019 17:08:43 +0700 Message-Id: <20190217100913.4127-2-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08: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: 10816925 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 770091390 for ; Sun, 17 Feb 2019 10:09:30 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 65E102A139 for ; Sun, 17 Feb 2019 10:09:30 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 588272A164; Sun, 17 Feb 2019 10:09:30 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1008A2A139 for ; Sun, 17 Feb 2019 10:09:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728141AbfBQKJ3 (ORCPT ); Sun, 17 Feb 2019 05:09:29 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:34769 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKJ2 (ORCPT ); Sun, 17 Feb 2019 05:09:28 -0500 Received: by mail-pf1-f196.google.com with SMTP id j18so7084594pfe.1 for ; Sun, 17 Feb 2019 02:09:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=39KRP2jc3b1yxd8B42jdhhA+pN3F9IoxU+JyG5/AIkw=; b=iHq/Az1ZKeL5fG39IiDzLpzNINDAUopaN4+HDzinZ6ta3f1zTC57mPgoGO9/kWTcFA RN1bc7aT7s90g74ouRe3/tBaHdaGEcTBxpIYafv/G8KOFC4QZFkaMCYuEkYUYqnxeBWz c2NNEz0ySdqEJvsJD0+haANwC2M1sv/Aeh8/3SJkYLWQUJL9b8/UHY7DMiqdlU6X5RnC 6CzpA0jNu1NKSh9XkKcHch0pwhH/ELF9bqLhajUV6VJ38cTwM8iMjaET2+VyebS6PGtp D/CFGHR6b9sQfPq+d7CiOYfJ5D7Cq3L3Z1IHJ9lTqXMpkFy/9uDm9HGuBu5WKQd6w17P LouA== 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=39KRP2jc3b1yxd8B42jdhhA+pN3F9IoxU+JyG5/AIkw=; b=LaiW7Q3kaKJz9n4y4I6OS/ATpYcidUoComTgyRJ8r0QLcqAW0+P65cfw+9K1nh0GD9 J/AcdzWyQTO59qUbM5qS2aT8/jNfzbjLhDDxqsyRUg+5xdyAiMnkY3Sx1UG4VflQzGUv 2WmvDqk3i1WXJL2AQ1Qia7ahQJWbG2VUuEU9VkPu22fIKwFpvS/Sv4i0lASkMEgzFL5D 7xr8pXaJWGcpp7EKzi6dOLYQ/vigRujzHe2MrJ231QbeSkgw3jVeEi+0s5V0yookLMds A1MHrtQRoJEV3j3SB6jnEzdrfR1tFZMAIMrQDBiyKkGRcWK6zPMbQWzt1FGd1ft2NInM 0Ylw== X-Gm-Message-State: AHQUAub5Y6LSDJJ+rofA0kl8WuZO2jsVRVsKhEq6xeEtxaDR0ZMCuE92 sY8BFnJ2KMuGkiyT9hxkKb3aGkA/ X-Google-Smtp-Source: AHgI3IaLd8bCDtVv26+clQkVDPO7IJZas/ltLyydBW8yYL+eG1h6CNCZIpnTTahtmlKV2B9hjdpsRg== X-Received: by 2002:a62:3888:: with SMTP id f130mr18256108pfa.132.1550398167888; Sun, 17 Feb 2019 02:09:27 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id k19sm11174331pfi.126.2019.02.17.02.09.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:09:27 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:09:23 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 02/31] refs.c: add refs_ref_exists() Date: Sun, 17 Feb 2019 17:08:44 +0700 Message-Id: <20190217100913.4127-3-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08: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: 10816927 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 BDAE11390 for ; Sun, 17 Feb 2019 10:09:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AC3772A139 for ; Sun, 17 Feb 2019 10:09:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A07C12A164; Sun, 17 Feb 2019 10:09:34 +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 4A73A2A139 for ; Sun, 17 Feb 2019 10:09:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728147AbfBQKJd (ORCPT ); Sun, 17 Feb 2019 05:09:33 -0500 Received: from mail-pl1-f194.google.com ([209.85.214.194]:41554 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKJc (ORCPT ); Sun, 17 Feb 2019 05:09:32 -0500 Received: by mail-pl1-f194.google.com with SMTP id y5so1698914plk.8 for ; Sun, 17 Feb 2019 02:09:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FkDodcI7e1T9w8FvZxiVxikqs4S6/TE+IyDVPGv5Q4A=; b=WV9XWUGGK5wIOPkJAu8vN3MH0DuapHgu7egoUTAAxHTq1zL6Q8S+qq70lX0T3icXcG viTBx+BqMMYKnaRP95E4QTCYYdPumasvrYuRrASGgFVRFy+fVlb0vJPfK9iOumhSGb0I K2gu6YziUzVkaLR4uhFXI4G2PWQzO0s9S+6DjHwGKg4n8KfJ93Hh5NYcyrQjlqGOdbAU YpT2qxEF7zSArSFDedGMcOlqnjXREN4ANZMgXrZemLIMaI+p+Lq+06AF3c8bgvlvzoVY OTyVLJdIXTSmIS0CP9llYhAFfcUXMeQwc8551KYncZmmiZSzatOArEq3weOzmiKTgTSG mOwQ== 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=FkDodcI7e1T9w8FvZxiVxikqs4S6/TE+IyDVPGv5Q4A=; b=BD+eXKEFCrMY1ZBH7Q/beSBaTP2fJ6VI3dlsCCi80IF40wr2O2cvaLNVxhiwehqD5H +O3CaR3PsPv0jcxB5AXzu8OKJtPvu/oJIHmrqTayEHiKFH1Kw2vZGAO0AZS62BIQHwfn 1yock/QGdrr07LGB0LCoJYYSAxCv32UJXgo41PmB0JdeEj0VhF80PkkEeMwBPcuOSPmW MQhPr9geNvRhe1DaDT+LgUvc36mGtw01kkW5yM+wbDZc8eQa5IqL/2QxKeYoynvEg1jj NEu0ncZLiM2IJ7E3shkhhHe64Le0aCF8Lqco+zEsDmJ5sMkVFkHFa2Q1IqMGMjtuXX3s nDtw== X-Gm-Message-State: AHQUAuZrwE5d2HoUcHXI7eI8o9sGDiiEB+UuCtt3qcxr39Ci6Shqgcve HPJdIItCGRwL2Q+yJxL8jzWaPH8E X-Google-Smtp-Source: AHgI3IZh+UbdUFq66HJrWPSvuBDZM7ZcTxLw8KEMPhp39guqk6dbACWyiQyNqmYwcolwP77RxzEc1w== X-Received: by 2002:a17:902:2865:: with SMTP id e92mr18872558plb.45.1550398172157; Sun, 17 Feb 2019 02:09:32 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id l24sm12907707pff.116.2019.02.17.02.09.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:09:31 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:09:28 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 03/31] refs.c: add refs_shorten_unambiguous_ref() Date: Sun, 17 Feb 2019 17:08:45 +0700 Message-Id: <20190217100913.4127-4-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08: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: 10816929 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 F37AF180E for ; Sun, 17 Feb 2019 10:09:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E11E22A139 for ; Sun, 17 Feb 2019 10:09:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D571E2A164; Sun, 17 Feb 2019 10:09:39 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BE6B12A139 for ; Sun, 17 Feb 2019 10:09:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728155AbfBQKJh (ORCPT ); Sun, 17 Feb 2019 05:09:37 -0500 Received: from mail-pl1-f193.google.com ([209.85.214.193]:39711 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKJh (ORCPT ); Sun, 17 Feb 2019 05:09:37 -0500 Received: by mail-pl1-f193.google.com with SMTP id 101so7264020pld.6 for ; Sun, 17 Feb 2019 02:09:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jPYtTRLwux9hMzUqlJGatGdu9dXwTazzNksmbv6zUi4=; b=D/Qw3HO2D49on087p2QXgeTPYh2ttFelfLyFrEHSX5lz5dnAlInzgCCyG20lUm/o6A hd8ox2s92PZTmHIGaXOjhbpYnahRxuji2mRwezt3wePmAxObok3Bl8Zrv/kwP/PuX7Mi SuxVY7149az+qZjnNQf6hOalxTJ2Coc7FTu5cBIYKqmUWInK1T8745WcdRpm6d3m1gg4 fGhsL3mtLKOfL4VpmKq7fHt9kxmDW2riYZyDEy/UTdai3QD/Q/v2E5ePUIKcdRY9sjQW HZHUFlOvQBkoD6oRHxKv21P+tuB1YLrwlQWS/DByIvoJWodFNzlUl6z7yFgCte1RPWxU Mc3A== 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=jPYtTRLwux9hMzUqlJGatGdu9dXwTazzNksmbv6zUi4=; b=UdkaSm7guMKqK536mItHPhd8EKQ2YL02lSY/5gTVf7eWbn/UsV1Vxip8MQGl4XH5AZ ZIImovS4kcV+e7ImHIaj8rk09YpaBnbUfhHdFfoOwbwlMlYXbbtQzG16Ma7Y0bSc/gnt bgmPtLLQbv5vv5bzZoUMjGt+RU1TslzUSLHPiVKCvMEigArTRPX9ADLM7P7ZdLy1+VxQ 8r409UDx0POopCbfa3ZbkHPXKo9oUyWpjDvGVQWG+tB2A/N5u4zhOnITrEHtXCbTm6FM j6YwFVMI+hx6srk1bb1Diino3HP4jG6LUyUAwHqK/+JjxntMLJ1wqbtx325Pz86Mk+jm xPMg== X-Gm-Message-State: AHQUAua0SF8qYWX++rjdbEE1kqTqtGP6xprtvbW1q5NpcUW3K6Zq4ZfO wRWTqcVIdGaqgAiJ5QOrm0pmH0Kj X-Google-Smtp-Source: AHgI3IamyUG8+JlF6n28H9oQ6SYPHB1INxpjLE2CdxbZF+ya+CbXWf1Iz3P0PPih+lOgkIzjgMYkbg== X-Received: by 2002:a17:902:724c:: with SMTP id c12mr9682514pll.110.1550398176444; Sun, 17 Feb 2019 02:09:36 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id b80sm4720834pfc.20.2019.02.17.02.09.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:09:35 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:09:32 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 04/31] refs.c: remove the_repo from substitute_branch_name() Date: Sun, 17 Feb 2019 17:08:46 +0700 Message-Id: <20190217100913.4127-5-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 27fe635f62..aa52850d84 100644 --- a/cache.h +++ b/cache.h @@ -1442,8 +1442,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 Sun Feb 17 10:08: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: 10816931 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 500C417D5 for ; Sun, 17 Feb 2019 10:09:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3DBB72A139 for ; Sun, 17 Feb 2019 10:09:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 310522A164; Sun, 17 Feb 2019 10:09: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 CA0BC2A139 for ; Sun, 17 Feb 2019 10:09:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728165AbfBQKJm (ORCPT ); Sun, 17 Feb 2019 05:09:42 -0500 Received: from mail-pg1-f176.google.com ([209.85.215.176]:41543 "EHLO mail-pg1-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKJm (ORCPT ); Sun, 17 Feb 2019 05:09:42 -0500 Received: by mail-pg1-f176.google.com with SMTP id m1so6988116pgq.8 for ; Sun, 17 Feb 2019 02:09:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=uOGJAjALw4ShWpymMwXQoi649DtE3cJee05xIVCBrl0=; b=FF9NkC5Xum+nP5lsoGS0ZTagYv7fHEzfsUjr75aKZFm6SNMdYeCzNVrxiOSoho2XFB AKe9/r/eHj/3KJcBUe2YoVoVNykKbNLVldjB2agyu5wTtVn8CTt+SdQllhsybdXFDOX6 lHmSNC4BX/rwz0dDADcyAuAMtveGiC/totGc5PfurRlPD/v+Z8GCYWpjpKrZTw4OtfOm NRseBACFueATw4ax8UxAGybnzVbj59XFiJokUqme34jXbNJcTv8yH8ZWQkOlVXlNHHAd XcuoXJNTLLMDN+WG6Tp7++Wq6i8Uf0nrVm8vmXmQqJpn8Lg/qreQaFISVPblvhirQEs9 uAZA== 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=uOGJAjALw4ShWpymMwXQoi649DtE3cJee05xIVCBrl0=; b=PTeeOFSkLNXQOIoBcfxKO1YanN8wAewXVcIesOtidSaNGKoD9ygDRoWD5xlKaN9wqy W2J6/IAGk1coyjeO9zLlEg4mBGpjJQ9u4aMyshzooH+PggHbnmsQVMI12NobjdEtw3nD AUmXRzlnN35SvV6Z/L0XmaKoPBqj9Q3ykhcz3baNnNo0IMpanbKVjNHSQkF19UW+bZ6Q 9Z+msY0960ufL/xqR4gAOUxRgQ2bCqo4lQFYjhNl+d92NQwqdPDSrgynR/pHta/bzn9l lSosq0+1fsxrdZOEeGkAdwgw4L6t/uq6jOEivZ4gNueMQBvLxTjwzJiNNfxKMvLlfPRt JBSg== X-Gm-Message-State: AHQUAuY8uLJ8YaE2EdO5naV6uJcQbs12+Gd4+u0xxhb8iC/+l3pWeCCW g9lm+d6AOBxTD8YC08Yb1vzCS8Yn X-Google-Smtp-Source: AHgI3IZ6bISTSu6aWsEaamoVk2L3kNAZK8Q2eWYm8+oFzXprxjEoPyYfLRVsouvsqOsbJt9jrDSx0w== X-Received: by 2002:a62:2ad1:: with SMTP id q200mr1029568pfq.34.1550398180870; Sun, 17 Feb 2019 02:09:40 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id f13sm14375536pfa.132.2019.02.17.02.09.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:09:40 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:09:36 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 05/31] refs.c: remove the_repo from expand_ref() Date: Sun, 17 Feb 2019 17:08:47 +0700 Message-Id: <20190217100913.4127-6-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08: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: 10816933 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 509A31390 for ; Sun, 17 Feb 2019 10:09:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3F1EF2A139 for ; Sun, 17 Feb 2019 10:09:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 332412A164; Sun, 17 Feb 2019 10:09: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 D10D12A139 for ; Sun, 17 Feb 2019 10:09:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728182AbfBQKJq (ORCPT ); Sun, 17 Feb 2019 05:09:46 -0500 Received: from mail-pf1-f171.google.com ([209.85.210.171]:40013 "EHLO mail-pf1-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKJq (ORCPT ); Sun, 17 Feb 2019 05:09:46 -0500 Received: by mail-pf1-f171.google.com with SMTP id h1so7070727pfo.7 for ; Sun, 17 Feb 2019 02:09:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6c0YYaTiSCvynTUcNcOYJQDu8wL3n9xBsL373pmPOC4=; b=f0TxTIyUMlyvnxtCKb1kNrhFSp2XerjGnXQwe0N+HFAu800W9I4OWoRJx/j5Xi4QNp w8T9jnlzGF5P5WqA0+Bqxkqwng0HV6TCJbBMTGaGlDX8iH+I9yowZjZPYE9cdVolCXdm PEf+Cp7ekFOujkiZmTQxBqKSYGexm4eaiWokhoi93DklUi5dChPC//z20kSVkCUAu+rS uUHxNNJuQMEigMehlt1RBjGBv2ltoZl8Ltt8Nd+/HfzZ6mUYiA26n7VtRaIg07BLAUgI 9NBEBbVWvQLNgjO+SLhuEeX3G1Px2O4qjT3OjegRg8SasBDyGiRLI5+w30XFJxFCrh9U vCHw== 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=6c0YYaTiSCvynTUcNcOYJQDu8wL3n9xBsL373pmPOC4=; b=QSjqUPEVVdd6a5/oZK/pXfy01WleeZbxnWKcQZ0uFRHkM8nFhw8Mta3IUu6nF5FJ4a FRPZJiRfUpn+ImCLUW8b3q2SEIPrA/tin7GE9kY1rmAnksFyDYkjUO6kCy5anEAAqNtq K+lpB5mbcX/MbzWzQTDByaR48Gix4wc0vdr0Q+XYz/16VvnH4szJzPPwwepHl9INJSiR ek3yB8UA3kdwzeqR06YwrnFvyjNxZnUzPC7oBxWm5A1quTl01loq6MdXXL5eVQheKZ1r pfqsZniBPkCD7KBsQ362ZCCEUGpxjybpCp/E2N9CJxwyqTBszdLOWuJ6JqJPw14SKn2Z 7BTg== X-Gm-Message-State: AHQUAuYctsHD+XxO2e0yo+EXFj2MFPU4CMNliVHsQUt3uVeINndxVgmq /UcLMPX03qpqn8vVRQGu/j8/aCQB X-Google-Smtp-Source: AHgI3IZ8zLqcvPVJdM3xfu2PSjG+knXOObYHy0l/eiXZRCF/wwPfUHiZ6gS6Q7crpYrpmwnrzO9Y9g== X-Received: by 2002:a63:e74e:: with SMTP id j14mr13730148pgk.449.1550398185225; Sun, 17 Feb 2019 02:09:45 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id c13sm18353125pfe.93.2019.02.17.02.09.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:09:44 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:09:41 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 06/31] refs.c: add repo_dwim_ref() Date: Sun, 17 Feb 2019 17:08:48 +0700 Message-Id: <20190217100913.4127-7-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08: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: 10816935 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 EDB6717D5 for ; Sun, 17 Feb 2019 10:09:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DBD602A139 for ; Sun, 17 Feb 2019 10:09:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D046C2A164; Sun, 17 Feb 2019 10:09:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 771852A139 for ; Sun, 17 Feb 2019 10:09:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728184AbfBQKJv (ORCPT ); Sun, 17 Feb 2019 05:09:51 -0500 Received: from mail-pf1-f194.google.com ([209.85.210.194]:36639 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKJu (ORCPT ); Sun, 17 Feb 2019 05:09:50 -0500 Received: by mail-pf1-f194.google.com with SMTP id n22so7079821pfa.3 for ; Sun, 17 Feb 2019 02:09:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vmzmbOQr+x8JD3nuqSqYAs7w9IFlhHYu9lEWpDCsgfo=; b=fFsvFFlbGykspFNrckzIcpk8MHwWvBSZ2Q1YgXJ5nlLMzzy/VgI6C9GBfXA8BrIX7q /mYS5ZyIW6CdlFUIHr13xCYMolah6hwU/IaDF/iljTgLPoamslRAIBP+0t0XcNNb3ucY wHCiGCS+yiCdFC73pUCe7B61OqXdvqkUWlu8rFtS95sYD6TEWSjVkVdHZeIe3YTA7Uwk Vt+wwtUyHEALSKzzOJd8sRtpZEP++aE5796FDHGAguoDCdJmNek9EqVduRqg/quER22f mjqTWTv7DXWLME/wR072X1ACCOl988qhrHI6w8Sv5nlgRiVJitwZRjRPkLrFu5cbYINb CbfQ== 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=vmzmbOQr+x8JD3nuqSqYAs7w9IFlhHYu9lEWpDCsgfo=; b=gwTue04Gukqhzzc7JxAfbRZz7Fk4jN0jFMfH2yVfX4YtXp8xUxrd2mG4Ozf5OGvoCc lNndiLvAA2DBXQDEXYXIyI70vwEgGJbELWETx2itn2v7uPvxfpnzISxDCoZ+1g+G9oJ3 50CbTLYKhfJ7WByzKc0/QHR6b+0uDmOHHdFNz4qh4pl3Qt+GISyO1aW+hANybqm2axx8 A6FNnMEG6ZaUYZcmmTCqe0Xu2yBZaj5xYz60C7ccg8s8epDQS6IcfUFQwPA5p26Rj91Y Ozekdlv01yOHsHWHRxHIBnQMSfSiZJ8G8wNY7zWcASKIcHMbtrK2tVcr+ykZp3aJNVT9 0ZXQ== X-Gm-Message-State: AHQUAuY9igDyXyKyFSJYC32pv85dnH75dQmbExOSit9JmfkQhXkxGgoy cAKeHtqRi0XkFZNtj7BUEGRWJjWG X-Google-Smtp-Source: AHgI3IaBGfc5uV67IY2X9FB76OcHC53w65lMFXgMICQxAVc6Cj0n8bSI1MtA2CJadAF4i0u4tgzasA== X-Received: by 2002:a63:fa48:: with SMTP id g8mr13643917pgk.203.1550398189601; Sun, 17 Feb 2019 02:09:49 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id c4sm11001796pgq.85.2019.02.17.02.09.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:09:48 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:09:45 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 07/31] refs.c: add repo_dwim_log() Date: Sun, 17 Feb 2019 17:08:49 +0700 Message-Id: <20190217100913.4127-8-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08: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: 10816937 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 83D5117D5 for ; Sun, 17 Feb 2019 10:09:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6F1A72A139 for ; Sun, 17 Feb 2019 10:09:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 63D4C2A164; Sun, 17 Feb 2019 10:09: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 F27632A139 for ; Sun, 17 Feb 2019 10:09:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728190AbfBQKJz (ORCPT ); Sun, 17 Feb 2019 05:09:55 -0500 Received: from mail-pl1-f175.google.com ([209.85.214.175]:38521 "EHLO mail-pl1-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKJz (ORCPT ); Sun, 17 Feb 2019 05:09:55 -0500 Received: by mail-pl1-f175.google.com with SMTP id e5so7267627plb.5 for ; Sun, 17 Feb 2019 02:09:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xB6D+QQcZlqRS33KSlgXZUbS5gL57O6syOSYk3ErfWs=; b=WzayiwhIj/btbyXDBHVN5DZYHfKmez+RdX+86zsrIkiaIbJv1fEIJWluaR+h/bSCfE 3KziCzgNc6hDM62LBrKxCpM6wgdCkeddavSChvJfStLIQ8ggLZy6Ym3a9bS9iImD79QY El8+UQseyxuQILoQCflK01OWnsElcEYIC194fg9+XNf4GYr8JIVGNWSWBvSLZ7hVh4tL 51hbGXEuMGuZayELUFOz9ule0nwktYhqEeEUYzBjfgqRI+gWLHffdy1L+v+X29cDN1Ak B4uwug1WC18DD1D0bYNmHOZUFoOi7pDNfRxBwMniZ09GoKt0ljze83BGuOuU+3cXiNJC /6fg== 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=xB6D+QQcZlqRS33KSlgXZUbS5gL57O6syOSYk3ErfWs=; b=o2hk8o7M18HxFaQfTYnBNjXLq54l6bSwKG6znvZkaTr3UAiHZrFjvBniy7d4IIyAmI fbBQrDPdgagaq4JVkzmFuvuBNF6aWr4mC+sz8YnuPtflZXSDWmgk4Mmyg366StzJaIaP 5ccjsLHUYVyfoBnkOaTaB/iGWBd2KbKlTv3+zy6vbpT9CXLVOx7JjrDmYWh5QakS4mXg GXG2O90A2GiqmRBY0qXM+tGANEvu/4vxSlK3Gi2iNlM31l1j5MiveBsHcNcdI20KuMDp ryIIhBcB9YkYxsxb3+fs3SZhvxk/8xMSLHed2aBAbsGc0y8Ts3nziZUEAaEsvFaod3rr r7jw== X-Gm-Message-State: AHQUAuYCz9X0IH0RU2F6B0rxDCes6oIUiggMYpBu+8eG3BeAjZTK46W1 06oV6RI+O8oiaO7wkAkWKJrBZj8P X-Google-Smtp-Source: AHgI3Ib8SB6MPzMZzNaY6wTp5IwJKjPislL7VlCMG1koPa/k1Gu39TitZl8snY32Xsk4qG+BM+XINA== X-Received: by 2002:a17:902:8498:: with SMTP id c24mr19845446plo.265.1550398194187; Sun, 17 Feb 2019 02:09:54 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id w10sm11050541pgr.42.2019.02.17.02.09.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:09:53 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:09:49 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 08/31] refs.c: remove the_repo from read_ref_at() Date: Sun, 17 Feb 2019 17:08:50 +0700 Message-Id: <20190217100913.4127-9-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08: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: 10816939 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 B02E41390 for ; Sun, 17 Feb 2019 10:10:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 99ABA2A139 for ; Sun, 17 Feb 2019 10:10:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 89BB62A164; Sun, 17 Feb 2019 10:10: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 395472A139 for ; Sun, 17 Feb 2019 10:10:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728195AbfBQKJ7 (ORCPT ); Sun, 17 Feb 2019 05:09:59 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:41583 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKJ7 (ORCPT ); Sun, 17 Feb 2019 05:09:59 -0500 Received: by mail-pl1-f196.google.com with SMTP id y5so1699196plk.8 for ; Sun, 17 Feb 2019 02:09:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xVaTyVSFyaD6wwIKP1+wDytu21O4LfW3MiqUfTnB9S8=; b=fpa92lAdB4I39zxe6rj3iu899z8dIT3WLgGCeOYxIgAwwtIlo9EERmhoALWz/juNOg vorOVVENiTcCpeCez9qfW5pC7HXDWYi5dtxf/fbbLfyqqle2TBCOHEsWyTBvfGptO0CK ip2ojHLBNg5AhF3C29VehuffI5gSKezxli2NGqmnHGhZYf7P0Pbc8YSsRfkRD2WMKpDd 5zNIKY7DN67w/Mn5gLjOtLqHZvK1b6my5VLCHGeowb8G/l3QbjiIQQKbh7VCWZx2zp7Q hC0KGWIsRV6xEEj+VFrZvnVPoY4oo9zjTS0gKChP9disRynQ4jyQlrc0lBncsqjxJxjX miyw== 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=xVaTyVSFyaD6wwIKP1+wDytu21O4LfW3MiqUfTnB9S8=; b=XagJMnEnfKE0Mi9y2pv80sa2OP7kyt3DbxKbLFrVJ+7sYpDbaQ1U3GNgj1RxIB+TO4 5HtZM9BItk5f5xlomy45e222pPikMjklHDYIciGyA7CwO+WiYXl34IRbZgWwzv/TCwKJ ud19IUACSmaTTdF/MdtM1VZoGTmLc3bflleczZSVsM0LEm/Bo4uW8qRf9YLcwhj0MIrf EI7LPHd8WRjdEgW4dCAZhRhf2nSD/j3TGeiD9PpkxOAJKH81fdJcTlQPSOKg1qmCyhdl Xdwy2+JTkIgc8ldnC/ssIGl/QNHhBzAJHDvF0Zvr8k8f4g84vitb1E8oRFXaWrPdmZvR ZQ0Q== X-Gm-Message-State: AHQUAuaDG3ZONcIlXhpvhfXc2D93EQdTKfuU5ckMspzePzTYlwerJ4zg 3uLRl2kqE58ckXMQSzVYTfSySH3a X-Google-Smtp-Source: AHgI3IbtLp7NiutNBewqYHfLPbKDQt01l2GMcHPFXFNAgQB0ekvldWjjZ/wUWJz++phPDTw/vMN8kw== X-Received: by 2002:a17:902:e711:: with SMTP id co17mr5366023plb.171.1550398198540; Sun, 17 Feb 2019 02:09:58 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id i2sm13131164pgl.53.2019.02.17.02.09.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:09:57 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:09:54 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 09/31] commit.c: add repo_get_commit_tree() Date: Sun, 17 Feb 2019 17:08:51 +0700 Message-Id: <20190217100913.4127-10-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 --- commit.c | 5 +++-- commit.h | 3 ++- 2 files changed, 5 insertions(+), 3 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..b576201be8 100644 --- a/commit.h +++ b/commit.h @@ -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 *); /* From patchwork Sun Feb 17 10:08: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: 10816941 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 65B8317D5 for ; Sun, 17 Feb 2019 10:10:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4F7402A139 for ; Sun, 17 Feb 2019 10:10:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3EE752A164; Sun, 17 Feb 2019 10:10: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 D04A82A139 for ; Sun, 17 Feb 2019 10:10:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728198AbfBQKKE (ORCPT ); Sun, 17 Feb 2019 05:10:04 -0500 Received: from mail-pl1-f195.google.com ([209.85.214.195]:37240 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKKD (ORCPT ); Sun, 17 Feb 2019 05:10:03 -0500 Received: by mail-pl1-f195.google.com with SMTP id b5so7276244plr.4 for ; Sun, 17 Feb 2019 02:10:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=lm42Q/wC0Ztr+5skw3SdWf5M+qFQHnFyFkjCHqp9Evo=; b=o48pbhmN8HXRjOsMav5JXIad+SxKz1tZddZ0L/I172HgdVve8g3sR14TffnqztFsOp gbUwaSvHFRvaBt/iIrW6BDKq3iFyomKbfIJZPA7FYFEDIf7ZVfGNd7UJkZ4UV0OlwhG1 kO3kHK+LrxcPZ0oFadmmM+NdyN2JhZRG6RDrlcJqepjexqYLoJ+pwSUEZHRqwWfZNsN6 Vf7F3AIPy7SZQyK26fbT9Nwyau2/WC0J2/tbrPr6BSmRt8+FPKwsvO+s2pxv9rlSCX6X rkXBhAnD8KhnuD3AIy0qSKdXUABtEdbUFyB7LWjF7BJhOdQYyoEz1vHINZg+CFIxLhrl 74Sw== 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=lm42Q/wC0Ztr+5skw3SdWf5M+qFQHnFyFkjCHqp9Evo=; b=obFhURwL4CDIE9eI7znPUJ4JDT9uIRUGw4+Ltm3F25jkrzR23kOJohIOxwgiCmEE6u tt3dVV3/DNWCV8vSa+RtR3cVFzYOzi0mDN4A4gJRaoqNSoDK6qbqhTkCSDAEbx5PDbex RKjORqUITdMqVIaPWivCkNoeAgTbF5VHOJLsyN+kZD+W+6nDmIfjI2hHEJKDwIg8vQXp 88UGoRIvkUfyEdoL5dq9u2cROLrNIYL7Ut8BdZINeEexf6ndleyozsFsVkuXwjdF49V5 4q72CtR1rlJgkJej7SuXrldr4OVlv3+LjhWFOTgs089Z67hLRQU1fLEernbs6N1DoX0p yXyA== X-Gm-Message-State: AHQUAuYu5i4p0BHYUVTJNfLP5odTwFLlhTgcWXdkT+QOmDKozSYm8hkE nMAv3lnVsbOpTTqc0XaUulULe5q/ X-Google-Smtp-Source: AHgI3IZRkMaPcZsZ7B0xd9zP7z9gCsunUmu8M8lBiAj5kA5TYvnSRVFqE8egGNHifM+IS4XOoVyMkQ== X-Received: by 2002:a17:902:8203:: with SMTP id x3mr19589904pln.285.1550398203047; Sun, 17 Feb 2019 02:10:03 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id l12sm98045pgn.83.2019.02.17.02.10.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:02 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:09:58 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 10/31] sha1-name.c: remove the_repo from sort_ambiguous() Date: Sun, 17 Feb 2019 17:08:52 +0700 Message-Id: <20190217100913.4127-11-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08: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: 10816943 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 616D517D5 for ; Sun, 17 Feb 2019 10:10:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4EBBC2A139 for ; Sun, 17 Feb 2019 10:10:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 42F7C2A164; Sun, 17 Feb 2019 10:10:10 +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 EB0622A139 for ; Sun, 17 Feb 2019 10:10:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728205AbfBQKKI (ORCPT ); Sun, 17 Feb 2019 05:10:08 -0500 Received: from mail-pf1-f176.google.com ([209.85.210.176]:35580 "EHLO mail-pf1-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKKI (ORCPT ); Sun, 17 Feb 2019 05:10:08 -0500 Received: by mail-pf1-f176.google.com with SMTP id j5so2574268pfa.2 for ; Sun, 17 Feb 2019 02:10:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MJHNSWD+hZes9h3goPojJ2P3XDQYdq90Qj+wu5hUo1w=; b=oTJxXuuWhRQoV5lObo4p8TcX7t/SB7XoxKNR6zb4O7ESYEdkiB+0MR54Xz8kQPxv/+ vnQF5n6qWwMOc+KNLrkOeex4/LR/KOYlhf+9koHk92lXpCsg5D9HNQNnbreigoigqHzN ay1mKD/CIXKVURaezlWMJLBJ9qf+RYQ50dYnRxSyA+t8+S14Pz/OjjSfCVGpi/zXoRZp GyUKeyffM8ErBX8Q2r7Jr69IMDBq6p4wYIbNq5Yz8D6qRm2FTqArqdt8W7Af9GGAul9V qcYIZcYYvf2ipFF+ScCLWpJpDybnxHIVMHu60RbTfZKxZZQHZSdY8tk5NEh9QPcYYYRF bbQQ== 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=MJHNSWD+hZes9h3goPojJ2P3XDQYdq90Qj+wu5hUo1w=; b=dyjIQQ0NevN5hq/ImrVNwFt9dv6Wl9KpJ6Bhw8SNMKzankPcY2cA7mxCLiSWCk4mnt KlD4OXb2t5YdXLJzAaBwfHFkhT9vSCNgisN4u6OVQeiWGY3ewbd0iJXE9urur7hdTqIZ +TW8aWJ75U/Kf8p6526cgNrwe1R7TPC2P46dUUDPN52zwyLGMuLKtZ6Yq264b1p5Q+mH MIsTcuEZ/oX+1t/qxWjhIe5pyeKSP2gHJmLA10To85Et4ag/n5L8SbwqE/zLFdWdS3/g 2LIdp6bNNnCnNHpNyKh8FeiOf+XsCQVGLtrGconKWV0YP6ElW2mRKTcW01IKGhWYP7fy FdVQ== X-Gm-Message-State: AHQUAub3FlT1evcGoHWhlY+yFOj7lhErsRSnGgCzj9QD7XUJvFsyilPe VD9+9kwOl2tHxvIyOcevSZwPhWlo X-Google-Smtp-Source: AHgI3IaLOdrn2rnCvfjpWVo1O+JAPmrBMOVS1SDTF4gdrR7nZrpQJnpX2Ug4bl03bTZC723bzt58fQ== X-Received: by 2002:a62:e515:: with SMTP id n21mr18808067pff.159.1550398207594; Sun, 17 Feb 2019 02:10:07 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id d13sm16808180pfd.58.2019.02.17.02.10.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:07 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:03 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 11/31] sha1-name.c: remove the_repo from find_abbrev_len_packed() Date: Sun, 17 Feb 2019 17:08:53 +0700 Message-Id: <20190217100913.4127-12-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08:54 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816945 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 E88D81390 for ; Sun, 17 Feb 2019 10:10:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D6BA22A139 for ; Sun, 17 Feb 2019 10:10:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CAAD32A164; Sun, 17 Feb 2019 10:10:14 +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 5E35E2A148 for ; Sun, 17 Feb 2019 10:10:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728211AbfBQKKN (ORCPT ); Sun, 17 Feb 2019 05:10:13 -0500 Received: from mail-pl1-f170.google.com ([209.85.214.170]:36661 "EHLO mail-pl1-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKKM (ORCPT ); Sun, 17 Feb 2019 05:10:12 -0500 Received: by mail-pl1-f170.google.com with SMTP id g9so7279180plo.3 for ; Sun, 17 Feb 2019 02:10:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xNBHZsu7kan+IxdDE8BpjuwLhFOKFTENVGrXmeEEO8I=; b=V37ImD55/czvufqIhQeM8EcGrfoNei7NVKThEYhaaJFf9CaFOXFauYLiXqpLerKxE2 ZxYdyKYN2ixJxDSAKb3HqxIEgx4P8jRvpES0SSvS7OlNLQ4aUoBvim2ROSes1JlDwmN5 UKEXHmxdFU4wES7GwebPlm5GgwgjwZmbos5Z2bxvYVzBWoDO9FksS7GOFzdW5A4m5Crl ce3BrjBZUNCF8T880HKA77TwptCQXm0WxF3sXBgfe+qYajjvlFXf6ofjLqoAoR8iKXtz 9yY2P2xRrebkA3Aa/q46eX/C9V1L7mqM2b4S0kcTOKLEvzNztj6OdETikyi6VaTXHJzG 41yA== 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=xNBHZsu7kan+IxdDE8BpjuwLhFOKFTENVGrXmeEEO8I=; b=TjmBdbFM+8e63oNCVF1M2I8wMPGC7VTsBoTTF4N0rSeP2bubiD9NHtu/o7iLQ6FtHB rMzLqS7t/Nli2SGYQCKf952DLy5FOAxXM5U+AhEwh1LO9jRzB0hc15nAiOwjf1VTuM9Q hM1xmFICq3Oq9sPK3lTF1QOmDlK1HiZMpfo2i+KRAN+hFrAgsEUM5+UMW49kPabu2fee ft40fg7fhrKcr3ZBV6U7iW5uYeRkPsBsBqxY3Ws7me9U8cgyiD2y+clEpxud8vL6Gx/R zGIa7VAdod2EgALBmx90X0KBUm4hhD/0K7PELDwNJY7SHBsfv1leh4kyUdknqKpkM0O8 BQVA== X-Gm-Message-State: AHQUAuZAUPCjRUZcLcddXZ1+fajBR5LWQIVolbxPargCeAm/E0WQIcmw VXeE0NW7DAEzSEbmZZSsSqpOxSVQ X-Google-Smtp-Source: AHgI3IZrg+WLXHZ+fNZ1b6v1ehtB1tmh1TSgf4ounsRybHcgFSONb4oEu2ZSlk+mC+yaqvly8JEzBQ== X-Received: by 2002:a17:902:12e:: with SMTP id 43mr19544053plb.31.1550398212165; Sun, 17 Feb 2019 02:10:12 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id j9sm13968702pfi.86.2019.02.17.02.10.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:11 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:07 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 12/31] sha1-name.c: add repo_find_unique_abbrev_r() Date: Sun, 17 Feb 2019 17:08:54 +0700 Message-Id: <20190217100913.4127-13-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 aa52850d84..524a44110a 100644 --- a/cache.h +++ b/cache.h @@ -1019,8 +1019,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 Sun Feb 17 10:08:55 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816947 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 DFA7617D5 for ; Sun, 17 Feb 2019 10:10:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CD8BF288DA for ; Sun, 17 Feb 2019 10:10:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C1E582A28C; Sun, 17 Feb 2019 10:10:25 +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 29E4E2A139 for ; Sun, 17 Feb 2019 10:10:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728215AbfBQKKS (ORCPT ); Sun, 17 Feb 2019 05:10:18 -0500 Received: from mail-pf1-f193.google.com ([209.85.210.193]:45808 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKKR (ORCPT ); Sun, 17 Feb 2019 05:10:17 -0500 Received: by mail-pf1-f193.google.com with SMTP id v21so4075739pfm.12 for ; Sun, 17 Feb 2019 02:10:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jc47mFbEhCe/rjci/bM5sRxXAnLBHajQDNlYl8qKTsc=; b=Fm6J5z9gAmiuB065xMAgm1YAyTE7Q6uyaXgMP6EIkcUb+VxqkoooLTQFWN2HCPVNBc 5LgFQUzfu1Ey/nMX4DIcMdysE52sxB4r9KQPy5Mbx/Jvyxeo/2Prd8iMOT/MldaJkDgJ 10MleFBmifzvX7bMPLqgdkf3ZG3Lyh7ZPG3JrVodsyMbCv/HfH9kbBYAzhqyna2avV+8 2CCExKzJ5ADHD2dwNimqy0Y9qzwgcvIj3C02dY4/pUahHiDQQn9sCBt7xSQwwzxnUXnm AKXG6LWvHi/PZHljvw125p06o7uspAPMWdXlkOapQWo1hqGwGTn/CZlUqvNJZdFsJ6/8 BZLg== 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=jc47mFbEhCe/rjci/bM5sRxXAnLBHajQDNlYl8qKTsc=; b=GoDdlfElcpzEwdvFh0y9XISFoHs3CSBvPQS41JUJneO5Oxp8h+t3/7sTiBERncF2T1 rVs1KSUqqSITxMoYKDix8DK7AHddUsbNY9NF6VAZrGQR5xr9GqWQGFf+bebhyf4gqCbL 5SSVByJNbVAvyer2lHiDcBmGmDM/EGUahBti7tN7HxVjtR6VTfcQusrR9230xh+8vClG 7PJRPJhEtqqu0GD8a3IVykMx+7p3zl2RxkM6FLMdLC15fkf/seMPGqp1+zyUgzQeX8qt LyeF4tXgQLtgk//Ux0j378yfG9DdTv0FgXvLVQVshOonjbIV1t5o85R9XwB6eieTQo32 P7KQ== X-Gm-Message-State: AHQUAuZQ1+eUXB8jQw4ZxgKL7WDsTAygse5bF1Vl3kw3b0ie3xSKGNk1 mdkY+6r3OyrPHOiNBbm+FlVCH2Wa X-Google-Smtp-Source: AHgI3Ib9A+DMdhjWUbMyFnM1TMPxWU+tw2+BlifMKvlrdONWRlWQLEgBUsgs6SVkNYVDhhRGg0ARzg== X-Received: by 2002:a63:7503:: with SMTP id q3mr12755110pgc.98.1550398216523; Sun, 17 Feb 2019 02:10:16 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id y20sm17324923pfd.161.2019.02.17.02.10.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:15 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:12 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 13/31] sha1-name.c: store and use repo in struct disambiguate_state Date: Sun, 17 Feb 2019 17:08:55 +0700 Message-Id: <20190217100913.4127-14-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08:56 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816949 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 AD10317D5 for ; Sun, 17 Feb 2019 10:10:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9BC38288DA for ; Sun, 17 Feb 2019 10:10:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 906C02A139; Sun, 17 Feb 2019 10:10:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BD6422A25C for ; Sun, 17 Feb 2019 10:10:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728225AbfBQKKV (ORCPT ); Sun, 17 Feb 2019 05:10:21 -0500 Received: from mail-pl1-f193.google.com ([209.85.214.193]:37264 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKKV (ORCPT ); Sun, 17 Feb 2019 05:10:21 -0500 Received: by mail-pl1-f193.google.com with SMTP id b5so7276516plr.4 for ; Sun, 17 Feb 2019 02:10:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SF2bQITIKETKEi+osCSBBq4tQ78G+/StqoIK0Lq86Io=; b=QqXG5owy2eKlo4frLq2fTvqwTgL4I2JrpI1323opSdJ9JYuQ5+cgz/amsWx8ZOfPvi vG+vvw+Q4+LHc2ezthj34k2I/cpdzg+6r3GC5xavNvCM3Qu+BQXfGa9O2G2pWmAjfEuG aJQ7vRJoDvRcghe954k5jGYIaGIB03x1teT/KqkCrj95Qpa2N9QHEIBNzVOqoJhfxm/V QExq9Ia1F/OOnHPi3uNjz8v66wPwCtqZmKbg9vO56KesR8Zh6zTPMmdevW+Dvq+XKqbZ aYUHCY007KdshovTu3dFsiHJ9U+72RySUoLbGU71q5iWYQ6pauNfspAq4OM67GkioY3x wNaA== 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=SF2bQITIKETKEi+osCSBBq4tQ78G+/StqoIK0Lq86Io=; b=eLxg54Q7/dbgRsT6ttn4JoLjZxdd8aWHGNL++aoZplZcs5lU7wtagTyGExfigg5ysu NYiFn6zTbAWMgxIJF1Nne2cZZDedq6aA+DRVMVSw0VvsZqVowKNkG6ESogRNdLaV70gg 36hxdt8PzEvZzYI+nNRRUZ7ocHcFnQ6/NyFbmQTr/HxnE/5vwly0hvkLWk2Xnwf5IK27 Agzn1Yvrgvp7P7OhTjgFlhxX1aEY+TbHUD3/B4T9XfnVF13UQzsHD+5iOpe89jrDnpzp RFYd/V7osrlvoQNLfrTdehDFDM/7nO2MIxzpR1u0mYgg9AomF39ZNuBn51MMbU+FqYeu xMKw== X-Gm-Message-State: AHQUAuYOsK75K07v3SazGPR6Hs67NAlejUkVNdbbu8ZJZRSswmzIxhom LSt8u5h40nVKV5V9oAQLH+uGFqvY X-Google-Smtp-Source: AHgI3Ib2d8/fPKKXlxxxDNZJ/5P4ZppefzeQbxMfeE5r7dEecjuM7d1t8u3H22qB8+srwCPdp2Xaug== X-Received: by 2002:a17:902:780a:: with SMTP id p10mr19845581pll.54.1550398220740; Sun, 17 Feb 2019 02:10:20 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id d26sm13465279pfn.12.2019.02.17.02.10.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:20 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:16 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 14/31] sha1-name.c: add repo_for_each_abbrev() Date: Sun, 17 Feb 2019 17:08:56 +0700 Message-Id: <20190217100913.4127-15-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 524a44110a..92973e7ae0 100644 --- a/cache.h +++ b/cache.h @@ -1366,7 +1366,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 Sun Feb 17 10:08:57 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816951 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 02A7F1390 for ; Sun, 17 Feb 2019 10:10:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E4E55288DA for ; Sun, 17 Feb 2019 10:10:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D91192A263; Sun, 17 Feb 2019 10:10: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 7ECC5288DA for ; Sun, 17 Feb 2019 10:10:27 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728230AbfBQKK0 (ORCPT ); Sun, 17 Feb 2019 05:10:26 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:41567 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKK0 (ORCPT ); Sun, 17 Feb 2019 05:10:26 -0500 Received: by mail-pf1-f196.google.com with SMTP id b7so7070494pfi.8 for ; Sun, 17 Feb 2019 02:10:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SArSb8OPBRUZVqMXmUXorSnL97zME5T0e3Z7eNBMPRA=; b=RV7jEl0R0MoPMHIMKDA0d3dU9NqWT6gpYYSewFP5iTvC20BZeAsG3VnGwd8BF/zFde kKRIzTyEplyn0mVO6p84q/tGjeGAH4JyQ30Zm6sU6ou8GpLblXLO8t6IcFT5Qsv69NTl Y8vPJgHU3NpZBIAVwK3TiZkvCJ0su6KOCPxKOK/venLC/wOsmJbC4vFx0y4gfN1aOKfo Z46SwLC8ClizMgia6g9OgiBFosur3QiYJrHUfYICMLVqtE1kDR0/favET166DiXk9R4V L0eY9wPvNCuL/qhMTM8RnebSWJFjnPUA+Y9wUyJ2SRkPr5HWcJwthElZmihCAsda8ypm X5nw== 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=SArSb8OPBRUZVqMXmUXorSnL97zME5T0e3Z7eNBMPRA=; b=tnCNg6VBLfvZ00vl9iEPTqsw4RQUf9vjuV217GNNymYJFQujsoLiXoEAZZZlSNRiff src9yW4ne9qF39QNIQcCsUv4kBm3ON77XyfTLAxg1bHEH9duBx49cL4E8Bnfuh43to0L Lk8/rwSlGzT8V3AN55sI2OKiessGfir6iAjlohU77vEPGDvxEoIMQOhDuEF7r+EhobPa jlljrx3zQqN8KAae52Sa4LxxBOBlhUNU4Jmw1W84WvUVyn5lGvbqNPFFTAmJiVdmSNzD e/3i5PqISabJTGX2vsyt1JWVvDftphhsSzxQGmiouRy/8g+GRVSWMaAY/F3MRhr4TtHt VibQ== X-Gm-Message-State: AHQUAuYOG+soCAFhh8cg5RWQRYp26BpLRJ/HzQANzIYgi0vtfvYq5kbp xwePYen5ROT0CeXxDkZQlKKvn4a/ X-Google-Smtp-Source: AHgI3IbkdJYUFRHm+JcNBrzwzivXq0E9rpIUW9CsMmJuoIPf/uZ/HMzlJD5T79ydxsxaIrHxs8i0jg== X-Received: by 2002:aa7:82ca:: with SMTP id f10mr18368772pfn.131.1550398225040; Sun, 17 Feb 2019 02:10:25 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id m20sm11733807pgv.93.2019.02.17.02.10.22 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:24 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:21 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 15/31] sha1-name.c: remove the_repo from get_short_oid() Date: Sun, 17 Feb 2019 17:08:57 +0700 Message-Id: <20190217100913.4127-16-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08:58 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816953 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 C64111390 for ; Sun, 17 Feb 2019 10:10:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B4C67288DA for ; Sun, 17 Feb 2019 10:10:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A8CF42A263; Sun, 17 Feb 2019 10:10: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 4CA2E288DA for ; Sun, 17 Feb 2019 10:10:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728237AbfBQKKb (ORCPT ); Sun, 17 Feb 2019 05:10:31 -0500 Received: from mail-pg1-f195.google.com ([209.85.215.195]:40378 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKKa (ORCPT ); Sun, 17 Feb 2019 05:10:30 -0500 Received: by mail-pg1-f195.google.com with SMTP id u9so3468323pgo.7 for ; Sun, 17 Feb 2019 02:10:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=AIX1utwjZ4XmPj07TzD2/xpds0E1boUeoo3mdY8VyGA=; b=DcdUzm/TXlUrDKTTGRfn3ihiBmdwhNuctzrFK6ACfOqHs8kjybJwNCwoMT2Akm1Q15 3jRMwj70zeQxJ6Pz0H0tLN/bu3TxQtU/EOt6yTrohNhu9p1Ceauqhnx70YvZ5g4Txnus 0xpu6zKIgIQKYktypOvNI2i4lVXkMTz/UHJbJA0+ARWun09qKxKheFgHo/OxW3zdWbWv 2T1eUmZfXlP8qJy+kNnaBsxkynp04p1787MCVQMDI5/4ffE5Fo94sfuvvuvgSw5aJ6Sh 2KwB8Oz3XhKz3XVVDhllw+cNNGU7O+heN1HkRa0cu2+aBYIedbfy15+AaGjobRV4t1LY eT5w== 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=AIX1utwjZ4XmPj07TzD2/xpds0E1boUeoo3mdY8VyGA=; b=moEzQwCgXWCgyaGCEWDopWTn48tiGEFEnQyJjwmkd4rud7IyCbsM0sL5mH33obgaD9 24XsTZqj7Zt6j2mjc8GeG1CXomBM9RI4yIxu3XlzTxBUXQ0hkOelJ9zLtEJptnpr6iKQ /QEMbkdRy/g0v2JWrtIGK+MhNmqkJvepHvgd96xChG4r4KCFRr/NhZYCuRXBgmhEblLU ApYlZdysT3su03Yw9RCqV9XWlwQUJGYprRdbPIYU37mz/GfXSV3bP/EhXM7roQj/axAw i4DP0R8XeOuHLQHlbpwuyoBFY2hSxkZMiuNTtGi/hVkPbcWBV8xuR0t6kVCtsrh/DceS uPMA== X-Gm-Message-State: AHQUAuaE3URMAidHhWaohTTbwLTGgp5fKPnUPeXjlVZrWsAjeS8Bihk9 EV2Gb/XbiOlNjWCPjlkVXPBfu+/3 X-Google-Smtp-Source: AHgI3IZKnzuOqMicL9mV2kBcLgby5skdIm+c2CZmrgOqUceFn9QjfLVsYEHOaA+jWjiH3QxL4Unw3w== X-Received: by 2002:a63:2682:: with SMTP id m124mr12601387pgm.35.1550398229619; Sun, 17 Feb 2019 02:10:29 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id s21sm20173065pfk.133.2019.02.17.02.10.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:28 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:25 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 16/31] sha1-name.c: remove the_repo from interpret_nth_prior_checkout() Date: Sun, 17 Feb 2019 17:08:58 +0700 Message-Id: <20190217100913.4127-17-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:08:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816955 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 3D2F417D5 for ; Sun, 17 Feb 2019 10:10:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2B947288DA for ; Sun, 17 Feb 2019 10:10:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 200B82A263; Sun, 17 Feb 2019 10:10:37 +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 BAAE6288DA for ; Sun, 17 Feb 2019 10:10:36 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728240AbfBQKKf (ORCPT ); Sun, 17 Feb 2019 05:10:35 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:32794 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKKf (ORCPT ); Sun, 17 Feb 2019 05:10:35 -0500 Received: by mail-pf1-f196.google.com with SMTP id c123so7088357pfb.0 for ; Sun, 17 Feb 2019 02:10:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jv4pp01mxwPL7MLI+Sna5LW19GCqzcRRps3ZBGSfs4o=; b=rZy3Pki4+SOWQUWyPmn6hx0r+stCLXLwTa6uaT/qau3k/vZybiAoHLk9qyy6oErBlU 1iinAC27m7+fW4QWKVsfZAwEH3Y4hFWS0H93ZxguS8AFSx3hl6k/AMtYFIbkXy7E9pex r2xGTnxXW7NAXRvb7K/6Bnx+ri1vyKup0WpE23IwGwQJciANNCRmzgcG2E2flzfK/S3D ByV0TocbkSpsqjlubbdGE9elVQJ53mExBh4k/sWRQ761Gb5QoVOFy1Psz3wL+yhKywZE 4lMKi/XDaEYWj+ChfY9FF1GZvNWpsI/x0A58/F3/+L0b1V8h7n9MR1Xs8lI4cf7EC1qf petA== 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=jv4pp01mxwPL7MLI+Sna5LW19GCqzcRRps3ZBGSfs4o=; b=lhTq0+R0xvpx6LRPMLhYofOid6KXN8LdjCwsD63FQuAZlZj9WNnRyaZ+mA3OMKKMM5 EZBvocjjoGc3HE0xaIfGdxr3vqH4tYq0LHQ97v7unsuXfLA7OB3UnPgwBpCLlNEiRAbw bSGaQ5aTpiOMaxgurvu/SvW07lAMMeCQ2o4duXmyhbl9Dp1M2lVHg/8Wl7QQBCURW7fL rXIeOjWAcME87KyPwGsdLCJwT54g/XGwJeVG+bCbojvArtqd36SHc0AxHaSjKT93w5rw HRhj607QFdr3QN9notLm4sehBPHdsMZE55pWphZ7D45h92baVSyuocFmYw+aN/f+Bywt 5Gpw== X-Gm-Message-State: AHQUAubUgtiTUkO6aY6I8GpUqk2XooM8upj3EKrDJ5arXmu2O3uI7IzD PpyYViqqKRWuZUGEeDeu4gEBhg3C X-Google-Smtp-Source: AHgI3IaLkWBp7cDDKSV7rGfRSwFRbEXK4a7axWqVml7l/Bx7iza2NVAdOG04bTUc8aX3t1+mckDDvg== X-Received: by 2002:aa7:808a:: with SMTP id v10mr18838644pff.8.1550398234147; Sun, 17 Feb 2019 02:10:34 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id v26sm14388359pfg.62.2019.02.17.02.10.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:33 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:29 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 17/31] sha1-name.c: remove the_repo from interpret_branch_mark() Date: Sun, 17 Feb 2019 17:08:59 +0700 Message-Id: <20190217100913.4127-18-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:09:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816957 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 DDCB517D5 for ; Sun, 17 Feb 2019 10:10:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CC7D1288DA for ; Sun, 17 Feb 2019 10:10:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C0E9F2A263; Sun, 17 Feb 2019 10:10:41 +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 60943288DA for ; Sun, 17 Feb 2019 10:10:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728251AbfBQKKk (ORCPT ); Sun, 17 Feb 2019 05:10:40 -0500 Received: from mail-pg1-f193.google.com ([209.85.215.193]:44691 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKKj (ORCPT ); Sun, 17 Feb 2019 05:10:39 -0500 Received: by mail-pg1-f193.google.com with SMTP id y1so6983970pgk.11 for ; Sun, 17 Feb 2019 02:10:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/PriUNGoNRPHBymzG2Iuyg44flPEY7XWWD3rRa38acg=; b=lJIlOsKBP0eKX+hLxoksDNww9hcuV3gsVRu4kxyu5pbE0o5uV6msEYGyPV4ecR8svd ubBlmEV1S6Cj3gktbAYKow01KH57qRWAA/IG1JDsWIBlHj17QtdnVyhHP+IN3lr2JtRT awwoSWGc/+0JIYMQbNSNfjiScwLBh/n9j82QhTL3tYN1QgIKoOXf3orRGSTLZlO3X1Ft e1pbyutwtVhVNp3X8TypUnxxzVGE7QZ86RLDnH7pacryZGy8JWBERc8BQCFxmExQPMby ltJBLSZ4SVcptCsvi5jHD1s+hzzypnFI52TL6XCnx8a9EI2TgKb/dOrt2RpT3uWikNu3 iyYA== 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=/PriUNGoNRPHBymzG2Iuyg44flPEY7XWWD3rRa38acg=; b=XUvAcgC9kbooUrGRT6YwUjPtNponib54qeLdRouyzwQhGF7HvnOau2hl/rZ7DIl9RD 7Xxk828nk/xgPUKy46BgmIFA2zHeZvYIh+733xEQmw/ru9MSP6A5mMvWZ2tvWW0S2Mex j+lR4UDQA8k2sCm6Ctc7Pk59wGa7ZC9+yx8+8MB2uJnMMPgIdb3qKh7HmnO5vtZz+p87 6U94mwAsVKhFtA9B+YoOcN5WioHXY6X2vYiGMC4NEALNsYbgE6ZFumbsjSXv17JACnjy 6PnHkCx7hZRcPiGopJp6ySzwlRXebu7/Uz9oc8s64f+8jD1nc0bMBlMKl6s7wZfNf02z kgfw== X-Gm-Message-State: AHQUAubXtQk4uU1KSiRc3xl182gNwkzsGFjnZfpYPRqRYCMmVUH9kfmv R0R19zYYe/9CtOcG1mxDx0kqCHuz X-Google-Smtp-Source: AHgI3Ibq9mP04y+5NUDjfl36GqxdhCUzlBmc47pSkgWvGOQLTopDipmtTqyzyKl3Z7+FiLDHghMaWA== X-Received: by 2002:a62:68c5:: with SMTP id d188mr19014881pfc.194.1550398238442; Sun, 17 Feb 2019 02:10:38 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id y21sm16900660pfi.150.2019.02.17.02.10.36 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:37 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:34 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 18/31] sha1-name.c: add repo_interpret_branch_name() Date: Sun, 17 Feb 2019 17:09:00 +0700 Message-Id: <20190217100913.4127-19-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:09:01 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816959 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 361AD1390 for ; Sun, 17 Feb 2019 10:10:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 259A7288DA for ; Sun, 17 Feb 2019 10:10:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1A2BC2A263; Sun, 17 Feb 2019 10:10:46 +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 E7315288DA for ; Sun, 17 Feb 2019 10:10:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728266AbfBQKKn (ORCPT ); Sun, 17 Feb 2019 05:10:43 -0500 Received: from mail-pl1-f196.google.com ([209.85.214.196]:42049 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKKn (ORCPT ); Sun, 17 Feb 2019 05:10:43 -0500 Received: by mail-pl1-f196.google.com with SMTP id s1so7255314plp.9 for ; Sun, 17 Feb 2019 02:10:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yVF33FHcbjQJZVeB3GisAdmdab6jMRiBps6JZEhvUzo=; b=WPW3XngNPxLF5jFhW2G373/hmx5gk0AL6eU/3XQuZ4LNviI7GVKGGLw7ZY5lyWwjry rFpWvOsd8errTDH1zTtc4dC2qZZMwMC2eyPprqi12g7W+VqRTItNmGlnnbH0lCjyQeOl ZK54mj4/N9dWnVBoLs7x2YLKGJY3iYHXQOepnt889VMc+ZUf+2SALjGjDOB8vzqT/RvC m/ehqF58ITiydfS33zcHcm32rYeOVwI0FXu8Kbfxvw8vcFTJQiNTihI0k8QChtubm7l0 WFCIcrQMDqiqYiyGgD3cCfCfhXsJ5EXHxGB1MwgKolfNS/UIK9jAZVn/lJxJ6d09pK/j RB8g== 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=yVF33FHcbjQJZVeB3GisAdmdab6jMRiBps6JZEhvUzo=; b=lmfEzFWx1D6Qo5+y+MC+mkPDIkZ38gtpfNWp8O8wzVPUMCawE0/XB9G4M1+GwwbZEh 02RcMzxAB1pQNGPMFPqNTT06ce6p/Hc/Lnn5QlDM788tEx8DjKy7YBrcE7NOsE9Gv+2F 55IFIYKzCcfUqlQwHXggwQoUIocuqTQatO9Mq7gWLmGXV6m8RQvd+1RPMo9H1In4YpYm k1sCdCyUakiUBYAb1zlUkN2px81vdkUJpznBLgylRR+jDtUkcTiICe5qhX/CKiGF8qkJ SAVo2aOPtuqLaPxblWqTsatV/GjtRHYZfUHGzzVaFAn5SHZR7KMKghW/YW/9DftPEVPk 70JQ== X-Gm-Message-State: AHQUAuYf4GXW1cctCtPtG10QutlSbKPaKV4I4wwKk5ld24m8j01Mh13y JYwH4Ygd9piJclLFJC9U93txoJ/1 X-Google-Smtp-Source: AHgI3IbnsjhMuy+sLM9WPEX+FDEryM9+KsGskFE1PRnCHscOQtG8iGoNWwd6Hi0FHIXxycP7Fc8Faw== X-Received: by 2002:a17:902:b70b:: with SMTP id d11mr1794217pls.178.1550398242805; Sun, 17 Feb 2019 02:10:42 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id p20sm14761494pfj.112.2019.02.17.02.10.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:42 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:38 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 19/31] sha1-name.c: remove the_repo from get_oid_oneline() Date: Sun, 17 Feb 2019 17:09:01 +0700 Message-Id: <20190217100913.4127-20-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:09:02 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816961 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 C7F7117D5 for ; Sun, 17 Feb 2019 10:10:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B6DC9288DA for ; Sun, 17 Feb 2019 10:10:49 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AAEF22A263; Sun, 17 Feb 2019 10:10: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 5DE69288DA for ; Sun, 17 Feb 2019 10:10:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728271AbfBQKKs (ORCPT ); Sun, 17 Feb 2019 05:10:48 -0500 Received: from mail-pg1-f194.google.com ([209.85.215.194]:42261 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKKs (ORCPT ); Sun, 17 Feb 2019 05:10:48 -0500 Received: by mail-pg1-f194.google.com with SMTP id b2so1262961pgl.9 for ; Sun, 17 Feb 2019 02:10:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=huBFzSI8Lqky+j9Lh0cZehMN90XohdFUOVmkYqvE0JE=; b=IqlOkG9foDwi3o9mkGXxW3Ioqq/wNvVWtNwBxbQlIHj98gJuuZreNZMvX2c9JB4Nnm pnYaIqVxbaQSiYZwbERvvkUo4F4KBXWl5TTvTIv58twkIgG+EBLtZzNsEztnJEiaxaaT 0FcolbG+dMf1+50KPr70c0lgUOXmDmsnNH5Cz+hIUfl0hlGge9F0ZgqW0SUTZBpZh4Wf u8wXIhEHtXdd/w22gxxjVxT4s53iAmVV+6u/8Y3vJjENCODjGeYCslNTEFeGEMBNmwVL A+gZB8kJRvoN6YGpU+wwckNQzCpL0TN98ZtHEcWOTJrzZVCHQXLDUVBv1+TwWXtL/ZAi T0WQ== 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=huBFzSI8Lqky+j9Lh0cZehMN90XohdFUOVmkYqvE0JE=; b=ATzDgH4bdoBKgsmB9tLWyJvRVOJ1NODy/Np/U7h2+Jty+Dm7S06UfeuV8X3+Qre7uw Cvlj/zC2M89bbxi48DFoPOlXkpSmGQ0M6FLzDXXlmtB9FZUggbIsyYr1ieBFoEnIvzYW 9e0eD11tUcvqO7WFtc64GLnjedfm5V1YLQ+AF4bJzSbFR1PrwYJ1j1GJCIythuJuW4B1 hkVdTiKqiUo/ZZuqKVXHsoZOWhX69uaDHPvLf8upL2cbYmkW8TFipA0E/7UccqBVg7fr G/54iKQWjunx9HrMOui3PWvQKIy3I44p2lV6CFootFbLd0SIhH/IUaiZnD9q1Swhc4nG VQjA== X-Gm-Message-State: AHQUAuYICVJkDHO/N5vIBNvrdWAcdUseHsIwhvLDiHtznEPpwcAJvJZb S32M4OlFQ3PtFJiZjVd5oy1f4gBV X-Google-Smtp-Source: AHgI3IZNUOry93CuqiIfLRVa/Q6SMYXh2zCImDmBt6IVNkMeC7ZlekMnYlnEV3hQQYEVfbRaWlUfaw== X-Received: by 2002:a62:560f:: with SMTP id k15mr18407121pfb.231.1550398247055; Sun, 17 Feb 2019 02:10:47 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id b197sm10659825pga.89.2019.02.17.02.10.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:46 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:43 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 20/31] sha1-name.c: remove the_repo from get_describe_name() Date: Sun, 17 Feb 2019 17:09:02 +0700 Message-Id: <20190217100913.4127-21-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:09:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816963 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 0F16E1390 for ; Sun, 17 Feb 2019 10:10:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F1B5C288DA for ; Sun, 17 Feb 2019 10:10:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E64042A263; Sun, 17 Feb 2019 10:10:53 +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 7CD92288DA for ; Sun, 17 Feb 2019 10:10:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728281AbfBQKKw (ORCPT ); Sun, 17 Feb 2019 05:10:52 -0500 Received: from mail-pf1-f196.google.com ([209.85.210.196]:45844 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKKw (ORCPT ); Sun, 17 Feb 2019 05:10:52 -0500 Received: by mail-pf1-f196.google.com with SMTP id v21so4076093pfm.12 for ; Sun, 17 Feb 2019 02:10:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=dMiNY5KRrZKy13KymcVkaSIAvSKOaapfmt1QuN6Ionw=; b=a388DPhKDYng7Nenv9jxAs2CCNolLCiHpFyIPZao6N8Q363D7Fg5a16ijThvAvAVCT HEpGx8KcDS+yvcVeAYSeYuJGI515Bxm/HDD6NAa21an6gkoBQrWbnrTDw7MLkoDOEAp5 uXB1/ElTMZqwJYM7Ay5qtP+FjJz9vRoeXXqis4qvmuzJRy8phxSIIb68/LPweA5ZA2+M DgUgtZWuhtHV0jh45TwFrK7P+yktB7gIVq4cnZM0rAczsKHcy6wa28rstbjNYXUzR33E EvEcMVwYMrfjg/vOlUxjhvVcoT3dop6K4acFdNe4osPkYtFPxUIxO0OQ/mB0T+Aqamz7 H0Hg== 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=dMiNY5KRrZKy13KymcVkaSIAvSKOaapfmt1QuN6Ionw=; b=IzXW1jeswVUp1Gob+0WpKTKM4pmdP03mUdb/LBNpFWlhLTbrUSRS2mL7Hsggsv+t6J TOsq5oLvia1fN5sF2r60n66IsqDE+afpxWy0+zUrrvHhzBCPW8p0M3bir4PLQjr21Uce hCjcm179jTqpWwdWRnAvO/+evVaedKSHVOIb8D6rj1GVOCIifAmRU8QakPUKK7hDpq0Z 9x+GaRe56LGYHwI0a4/Tp1VIC8WYFbIBoamWWHZd3j2sTk1ql42I2W9FQJkhxcShUdHm i5TAvYGdlDmKMBZ70QNfxv/Wu/m+n8Mb6tXAU7Fxw08iD9RJWmigL+5T7UjAPvNMX03e ccyg== X-Gm-Message-State: AHQUAuYTAHLVqf68pYP0KnuoO0UPHfvKXlXGTKPGF6VH972TA/eEU9Yw o7HlFbLp58P8E6GAn7rfF8s8bzyK X-Google-Smtp-Source: AHgI3IampBRrhzTPscU7GrlGut47RYQVi8ZwGkgb+y3ODBizblEpKAegUTkFWI5jX9QdRHKgrnkstw== X-Received: by 2002:a63:1766:: with SMTP id 38mr13679499pgx.204.1550398251364; Sun, 17 Feb 2019 02:10:51 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id d13sm16811238pfd.58.2019.02.17.02.10.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:50 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:47 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 21/31] sha1-name.c: remove the_repo from get_oid_basic() Date: Sun, 17 Feb 2019 17:09:03 +0700 Message-Id: <20190217100913.4127-22-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:09:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816967 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 5B4DA1390 for ; Sun, 17 Feb 2019 10:11:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 493A1288DA for ; Sun, 17 Feb 2019 10:11:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3DA0F2A263; Sun, 17 Feb 2019 10:11: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 8BE59288DA for ; Sun, 17 Feb 2019 10:11:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728295AbfBQKK5 (ORCPT ); Sun, 17 Feb 2019 05:10:57 -0500 Received: from mail-pl1-f171.google.com ([209.85.214.171]:43428 "EHLO mail-pl1-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728285AbfBQKK4 (ORCPT ); Sun, 17 Feb 2019 05:10:56 -0500 Received: by mail-pl1-f171.google.com with SMTP id f90so7257466plb.10 for ; Sun, 17 Feb 2019 02:10:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EeZA/W0wtwDNt0/mo5MctN1ToL1s6AwWhwlY5Ap4rjs=; b=HRiwP+ZvkEvolHuRZi9mIpiBCVGgp2Z7G6LbKS9kS3emm28p11k/oIinZmXesGgxeT Hm2RhusHPtH1sIZQ6Jky4/fqdU3bwGbFzs5qAwG4IP3F/U50+Epl9g9q15iqz05eGifT nwThnEUActPgW97Qn8u3pdsK9rS0RnxwwxMKWeJDbZjSCOD4o1h+krO3Exa53Xo8f5Kh UeDW33Uxzuq3cEZRX8o8Zm+B74pFxHA70A8XezHFqeW49soUarxCMNygGhGliZGApUsz 6vs2gqTTWN5Q8qKQ+qoI1g6w4D3I1wU4Sc9kBH8aKBg7WdI4vCh9i9wDdCfQVa0YbwZj b1Og== 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=EeZA/W0wtwDNt0/mo5MctN1ToL1s6AwWhwlY5Ap4rjs=; b=TQ+qx0DyGwVE9pDU/Qf583oD1esZfdfqZiqUb1XaO/kg1hGYuivo5GJZM77cISMUX6 E35BPPNLkV+B6RsQRRNj5owPvhOOW9pjw3m8Funw1DD4jX6Kuzd1NxhzjdKUZzdkNFHU xgRU/g6YF89LTwe+Xo3ZPasmzQRuREXc8wTQRVBfEbLOK1iYKTOV4qC5UjiYROZPltWY Y8cBdEvP0pYfnMpQVco1tkYfuuin3p7Wha2rG5kR0eLH9wSOPgDdPvQNf/vr8AB0v69b EQeGOO1zv2NX1CKFEiK88srDKfsYXBNa0Jyp9H+PtIyGwynZMte0ng91XlYxCgvw3Nh1 n4Sg== X-Gm-Message-State: AHQUAuZXMDZu9zpUvgEpovbtd/mmz6iWme3O3rfDZ61zuSZX9eNizPPg j4b/Y1cSu6+/tbfjdPdroDu6YVBC X-Google-Smtp-Source: AHgI3IbCmWEfdxmnLEQ3gXhQ/E9loqIUVQW2soIPkkcLnpOWRi18W2D1XlDOIwL9+70NNHQozeSHuw== X-Received: by 2002:a17:902:7d89:: with SMTP id a9mr3402795plm.33.1550398255551; Sun, 17 Feb 2019 02:10:55 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id 33sm5815412pgs.81.2019.02.17.02.10.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:55 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:51 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 22/31] sha1-name.c: remove the_repo from get_oid_1() Date: Sun, 17 Feb 2019 17:09:04 +0700 Message-Id: <20190217100913.4127-23-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 92973e7ae0..9ff5af0bef 100644 --- a/cache.h +++ b/cache.h @@ -1465,8 +1465,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 Sun Feb 17 10:09:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816965 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 469841390 for ; Sun, 17 Feb 2019 10:11:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 34FA0288DA for ; Sun, 17 Feb 2019 10:11:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 293152A263; Sun, 17 Feb 2019 10:11:03 +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 CA541288DA for ; Sun, 17 Feb 2019 10:11:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728338AbfBQKLB (ORCPT ); Sun, 17 Feb 2019 05:11:01 -0500 Received: from mail-pf1-f173.google.com ([209.85.210.173]:46104 "EHLO mail-pf1-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKLA (ORCPT ); Sun, 17 Feb 2019 05:11:00 -0500 Received: by mail-pf1-f173.google.com with SMTP id g6so7057520pfh.13 for ; Sun, 17 Feb 2019 02:11:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FWtW8F+aTvlCIWgx9l8lCP+h+/ENvBp0MjAgoCZB/Es=; b=Jkmf30ZmMvCksVqz5g7HNdRdo1gXJSAwvsxkwjze/1IzwLsQCUbBkMOmtRyf17YGGP AKOs92j5C2ZsSmEj7R2rqlrv5awivs2z4YIqAofoF+vQeVCgjosB7F5wi8q6SJVJsXW3 6iyI7za7gRvtDsWJvD1gq+70AqaBA73tWpep5PEyfio6tU42s6s9Uk/9WbyivubPA82T zQxrjvl9HP5So3wzyK2SVn2B4NA3m9+L/MSwyNo+kLrdi80FDUppXo7ya8mQ9Z4XVpHF j71tn6MmmWSA0ST4t1OZHCzKqGgQEJoAsx9DcVjN8u0JWeX4j3WwAsjeWXarbunh1k0N uGDg== 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=FWtW8F+aTvlCIWgx9l8lCP+h+/ENvBp0MjAgoCZB/Es=; b=D5lS+HOOwiFdOnwCpQG7uGLypcLTyQxsxdAVzfOIigdyI6Ih4k8Ufoe342BLe+WxIn e+7Iyoq5V8RpuX17IdC5zfAeZH//q9hn1mGvP6jbRNJ2SJHbpdstfGdUB3QXu9Yq0Nde JYJQ4lfsnarTkirLFOF4WllBJywDTDiFnLb0RcGMeX7Cx0OguwwK5D2dtypozo0mwJm7 zWsXSgeHVfeLKGf6mPLM6CvYrZ0ODdrOZ+J/nao8igrGnNCRfJeS/4f6EwIK4qXBWWYs NHjTu106ERODu3Yv9BvOnX/4GNn5QLuunTJsLvkX6sBF1XiTb+8gAmcGDnqsjyMCgWbY vSyg== X-Gm-Message-State: AHQUAuYgadrz5V0u6kFxcjfQS6hM0ShEU1D4OQsg2rmHie6p0tsqLV6Z 5kvQGge53NZKpuDoIPIBC3m+wSzu X-Google-Smtp-Source: AHgI3IbsgvqvyDG+rStK6cuwaeAb8ioQpGFiOJ1jXQaGrSQqk9Y3l4hmtIyyUCjAbF1vZqjNEmqjfg== X-Received: by 2002:a62:964d:: with SMTP id c74mr18483805pfe.213.1550398259835; Sun, 17 Feb 2019 02:10:59 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id s1sm15702150pfe.163.2019.02.17.02.10.57 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:10:59 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:10:55 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 23/31] sha1-name.c: remove the_repo from handle_one_ref() Date: Sun, 17 Feb 2019 17:09:05 +0700 Message-Id: <20190217100913.4127-24-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:09:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816969 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 E4C5517D5 for ; Sun, 17 Feb 2019 10:11:07 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D235C288DA for ; Sun, 17 Feb 2019 10:11:07 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C42962A263; Sun, 17 Feb 2019 10:11:07 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 64E9F288DA for ; Sun, 17 Feb 2019 10:11:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728340AbfBQKLG (ORCPT ); Sun, 17 Feb 2019 05:11:06 -0500 Received: from mail-pf1-f174.google.com ([209.85.210.174]:43325 "EHLO mail-pf1-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKLF (ORCPT ); Sun, 17 Feb 2019 05:11:05 -0500 Received: by mail-pf1-f174.google.com with SMTP id q17so7064821pfh.10 for ; Sun, 17 Feb 2019 02:11:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CbokgRJkMgF/9sHbeCDQL1g26TTG3yb/vBRZkif6kHk=; b=QwfTjwBCoJb7qfXvb10ZcO193mPJ1dd23aqwWbuROUh86oWWKrvLh6D8GDxIsX4aUl QorlSEi0Ng9AhvOvh0+IkMauimDBbx2/Gyi3FUKyZm8f9OWGSTWE9rKNiD2Mn79rqgBd 1ptXgdbOB2yJS34YXtDz4/h9HmyUr7TntE/AJcPO/2HRJCdiGiCCH64r9Ng9TmtaAsdF jNRZO1ZShywlMywrv6jX95OLxl+WpaC8yA0I4grBbqENBGUawu3GWFld6BtZH538qkA3 Qp7WGlaFfSEEs6YtrcoQ2B6NyOGRGV6swZL+YI5eJPkvV6s85TwPe8N4E/d9iZROCt/x ccyg== 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=CbokgRJkMgF/9sHbeCDQL1g26TTG3yb/vBRZkif6kHk=; b=LnVB1u0Akvj7XKNiJe4yCqZmPpGvxY2A8tE5oXdhZS1gNdT3mnzwrZrj/4ngYcngmh oha9oJsSfUhWAFzYWuUIgTTFfDmqWeD3nkn5xZ1IxZCfR01niGZ2Yp9axoKRzzxeufKT 7v/CPO26DJTwIIFLe/yqZdzcPgSxQYdAKLRaSkp91S043BAV9E9aLT4hZxI710yThE+D mYcjqyXhz8AL7qRq6dblZhtVUd7mBlw2aJRiutHy+6Gz3lin5LILZyT93DjiU3/xwBQ5 XiTdFF8ejyjuDSVl9hxJEeBSanxsVrSg4f8N01VpvtLPRhhuIjBvTShCWrTGsUzWqg2l G/gw== X-Gm-Message-State: AHQUAuY+BH9iGzYWHWk6OXswJhNpPbUOqSi4yyHHxh59oFSAE2XWDKwi p92JuEhJmPIEKUzkW/eMVktkGhqo X-Google-Smtp-Source: AHgI3IZ1K4UuW03BxhqjYfIEaf32eNwI3A0S+9o6tiIZN+qssg2L+FxCTaZqmyL2ZTa3GtSv7pm4JQ== X-Received: by 2002:a63:6a07:: with SMTP id f7mr13660248pgc.118.1550398264489; Sun, 17 Feb 2019 02:11:04 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id z18sm11447727pfl.164.2019.02.17.02.11.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:11:03 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:11:00 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 24/31] sha1-name.c: remove the_repo from diagnose_invalid_index_path() Date: Sun, 17 Feb 2019 17:09:06 +0700 Message-Id: <20190217100913.4127-25-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:09:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816971 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 99F7B17D5 for ; Sun, 17 Feb 2019 10:11:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 887E7288DA for ; Sun, 17 Feb 2019 10:11:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7C9CC2A263; Sun, 17 Feb 2019 10:11: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 2CDFB288DA for ; Sun, 17 Feb 2019 10:11:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728352AbfBQKLK (ORCPT ); Sun, 17 Feb 2019 05:11:10 -0500 Received: from mail-pl1-f195.google.com ([209.85.214.195]:42070 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKLJ (ORCPT ); Sun, 17 Feb 2019 05:11:09 -0500 Received: by mail-pl1-f195.google.com with SMTP id s1so7255573plp.9 for ; Sun, 17 Feb 2019 02:11:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=PclaGV/Xa57QcCtWmo0rioaHLxjaR9j2vjhs6nBR3+o=; b=aFH3p4TLNUp2DPHNN3O8FJmu01/2TkR2ns4VgwGbgVssHJF+usykc0uq+5XPh9DTwE oRQ8judgd1OpPJgDrtErxSZUUsBMwt1dMTgJFTvu4jdlkk0rGmWc8b8TGnEbl4Pc/L6f 46GPXIEUeZgr8LcNO6xtj/3C3PnqHHBAROTMWVBWNws0drWTufIcoHOqHGdgft6g+Bll f/VZQP0dfXrrB5mOdcbyQQpU66kW6dNmdQtoGAEs9RuVVb6xEQAZG5L5ttsQ1w4xhu/y 655RZK6n/+/tdRYKrRh6c/KATtm5r5enGmjwA+6ACmlHM6RNig5wtf2PAYWozDEA74sQ XJCQ== 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=PclaGV/Xa57QcCtWmo0rioaHLxjaR9j2vjhs6nBR3+o=; b=RCORjtQX36tzg3jRN/M2jbepAcw+M1r+fVx2slpAPQZCkB+I2EkX9YLoKcx6ooYv3W rrATj6fhRLKr6Kh/ydXkU+7rhzkPJjzuZ3sPwa2pykMtqm8cjkmBYcZE1Tu4z1DwuI27 oirib7nvkI79ZF8/QyEV1zeN41mZaOLMOA4kyLcCl8FE9ZXwAYLVZLCIU/RpVa7aWEmG w7gjhge6AJIJreXcD8UZuemSDROyeCK0adpYmKoef6UZmTDwaanjCZx2Eili8FnHN98+ yiOwM6m76Yo9jC9pQtaS6px9lc5JJhN1Eqg+MNzztpLoNc8ToC+ntfKJKU+BGKfr9ufK b6IA== X-Gm-Message-State: AHQUAubGyjzL5sxgH6cCFFEQx68/iPpdPDxtj6yS0TlZ0FZG8t9jlbKx E2LsqD7NkFlgvugbB/2w4rY1tWTJ X-Google-Smtp-Source: AHgI3Ib2YJZuBJCfT6cKYwhldbbpjJNrM/mwMAGt2sec9hwreS3lo53XVuVcF3J2V6MlKDVOtYGH1g== X-Received: by 2002:a17:902:8e8b:: with SMTP id bg11mr19719370plb.332.1550398268808; Sun, 17 Feb 2019 02:11:08 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id p20sm14765858pfj.112.2019.02.17.02.11.06 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:11:08 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:11:04 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 25/31] sha1-name.c: remove the_repo from resolve_relative_path() Date: Sun, 17 Feb 2019 17:09:07 +0700 Message-Id: <20190217100913.4127-26-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:09:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816973 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 3128A1390 for ; Sun, 17 Feb 2019 10:11:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1FFD6288DA for ; Sun, 17 Feb 2019 10:11:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1464B2A263; Sun, 17 Feb 2019 10:11: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 AFD43288DA for ; Sun, 17 Feb 2019 10:11:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728359AbfBQKLO (ORCPT ); Sun, 17 Feb 2019 05:11:14 -0500 Received: from mail-pg1-f193.google.com ([209.85.215.193]:37337 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKLO (ORCPT ); Sun, 17 Feb 2019 05:11:14 -0500 Received: by mail-pg1-f193.google.com with SMTP id q206so7005407pgq.4 for ; Sun, 17 Feb 2019 02:11:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aO6JsWlsIB4B7n1GsPODL8zSy1r5yYtHNSmotuyvrkU=; b=eqb/6ZwfvRIaAyN7DFVL9mGLozxQGJOTbi6HJnDFG7OyLs2srKOqFji7PwcNc9jRAo 4iPz0F7pZR9NLDeQbWKF2PnE0TphYQJhkxY9HWN4lF6Bg0EAppiLoBCC6CmCOrZd1N2s ofY01HOjbEM91i3/iu4Xfs01ZUoIfc2jq/Y8xI4UNvirAXcO4KyhpRb94NcUNqFDlPht m9VYBzC3bl9gJnVSWeKz6yfnwmSYonWJ4rNYMNqnTvq0zbrLlnkHjEA8d9NLN1fEsSDh Xns8YqAXkuaeygA4SvSn4nh3Y361Hv5uX1z4+2wwtiI1523f2u20j6+RFs+qD2LY9HJp /kXg== 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=aO6JsWlsIB4B7n1GsPODL8zSy1r5yYtHNSmotuyvrkU=; b=t2vVuAh6sokv1yafwJ/3dXwOhxz1RTDLTv4UjPK3B75U6mMhBVVaXsdsQgHddLyxhr WeYxYpVQ4gSrzBsZIbNch9NW/L67Hckn38yAuUC9qmEo+LLnDoUaYErlAj86goq3JaSF eEIgq3IgxU3aqsWval9YvahIFh3OD5RQb6B/5wogeFv3q2JS1jUCSfstZZLGKFPaWpLo 6jmYke4+DGPUmuJTOeMkGMTq4Ozpr6FdXFyKCDGyk05KfDs33w2TbcVQMAxuzqZ8M7dO Z5dd+Eq0qo7Z8TRq1VGBtQiKTff71nRxn8+EEf/lkWTeOyayUvt6YLixF67eh5XBtyHl OH/Q== X-Gm-Message-State: AHQUAubg2XVgjDc9LH+7tFu7KIyS4VW6GzRm7APQge8AIvWVFQ/nViBC XRXw6MHAIGKQk+MOQXBXlum0ovlv X-Google-Smtp-Source: AHgI3IYi8LJEvmbvxz1SlqByEZuyAs4DG+XmfoZCscjOxPVTAnpOPCRCiF+S7OHo3nu3QDEu/zStIg== X-Received: by 2002:a63:df09:: with SMTP id u9mr17358102pgg.299.1550398273082; Sun, 17 Feb 2019 02:11:13 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id e24sm13827742pfi.153.2019.02.17.02.11.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:11:12 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:11:09 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 26/31] sha1-name.c: remove the_repo from get_oid_with_context_1() Date: Sun, 17 Feb 2019 17:09:08 +0700 Message-Id: <20190217100913.4127-27-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 Sun Feb 17 10:09:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816975 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 3AF671390 for ; Sun, 17 Feb 2019 10:11:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 29B64288DA for ; Sun, 17 Feb 2019 10:11:20 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1DC082A263; Sun, 17 Feb 2019 10:11:20 +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 C20E0288DA for ; Sun, 17 Feb 2019 10:11:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727930AbfBQKLS (ORCPT ); Sun, 17 Feb 2019 05:11:18 -0500 Received: from mail-pg1-f196.google.com ([209.85.215.196]:45652 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKLS (ORCPT ); Sun, 17 Feb 2019 05:11:18 -0500 Received: by mail-pg1-f196.google.com with SMTP id y4so6987415pgc.12 for ; Sun, 17 Feb 2019 02:11:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2aDEOkbhIcatsxmBr0q9XBMcaZAAyajpHNEGKxEEQVA=; b=ExhkFo115zJq4dilgKvz37WIRPZrXV7XAV8G/luv+HwnglBbA92w+DjjOs9gpZSMUX AXsPqgHJWDXQWj0B9dtni4NB7giyPylq2IE4WVAEMaTQ1vHDYI2+T8HMG71mLqNGAm41 YdMONabtcMuHkywoepjX1QGtomvuhKRJsFOVsU6jQaZ4p5gwARUfD3tSiYZtmqhSlUVw wkhIN2z/BUeQgkr+fWwUBC2INDC+Tkh0ocWgDQLAXik7I6ty7aDeR452Az+emYAvQCMw rRYTuwPuC/5SD5FRrJ8uWoqo5VPmaQdBY6yW8JEwND6R7Cu1X7lmxlkn72foEevxZu5N HpcQ== 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=2aDEOkbhIcatsxmBr0q9XBMcaZAAyajpHNEGKxEEQVA=; b=A+r+XpYZInMLikI7bzAyu97Lj0nz/4RytCNT+8PQ7tTsxZ665qVQS0x5gMWUBqrrri NzLrnh4sO4snDbZiBwn0200PVLq4JaxwflAys4bBOOYPl3isGExFYzSpGOTCyDu1iUvG uUJ8t98n2u0eK8FUOHgJHD2YWlePdBeZJDu2gaKGyMSlr9XY70DZf6ashgcRd9JHp0g8 RQhgMYDUcI7Vtx6+vcCYaeQU7mL8mvSo2G4XQ9Mj0LhRaDNfGuhO8vkQXOMB0UnpopSE ngJGtjKqQ2KRfqQ8ga2L//DHWwOvOpvpPvnJEru7ooWoydoVZWNChU/+yu6JGvJFdWFs bcng== X-Gm-Message-State: AHQUAubp2XcHJ+s9ocEg+LMw8JfTk4Des4BPk9TkW0jK4f7ekJQh7tKL h8miY1EPUyEf8aAPr84CuLywtNR8 X-Google-Smtp-Source: AHgI3IbrtcaS4cDnDw2jG8v1vZkgrCiuRDYPJOT8f2uZFzF6CmlNg7nov7rAOmwjcc4pw2sjIp0vRQ== X-Received: by 2002:a65:4b83:: with SMTP id t3mr13602261pgq.417.1550398277501; Sun, 17 Feb 2019 02:11:17 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id l5sm13003268pgl.51.2019.02.17.02.11.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:11:16 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:11:13 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 27/31] sha1-name.c: add repo_get_oid() Date: Sun, 17 Feb 2019 17:09:09 +0700 Message-Id: <20190217100913.4127-28-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 9ff5af0bef..942d9912a2 100644 --- a/cache.h +++ b/cache.h @@ -1354,7 +1354,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 Sun Feb 17 10:09:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816977 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 9247317D5 for ; Sun, 17 Feb 2019 10:11:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 80D0D288DA for ; Sun, 17 Feb 2019 10:11:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7576D2A263; Sun, 17 Feb 2019 10:11:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 11B41288DA for ; Sun, 17 Feb 2019 10:11:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728362AbfBQKLX (ORCPT ); Sun, 17 Feb 2019 05:11:23 -0500 Received: from mail-pf1-f172.google.com ([209.85.210.172]:40042 "EHLO mail-pf1-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKLW (ORCPT ); Sun, 17 Feb 2019 05:11:22 -0500 Received: by mail-pf1-f172.google.com with SMTP id h1so7071748pfo.7 for ; Sun, 17 Feb 2019 02:11:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mIu+ijDO5otQgsLx5p5x/bgZ4iR+gvTG+pIJvK5djzs=; b=kdfSedmaaHMRZaOUsKgrdySb7lrizRYtpxi332qnTwPZlTw5qA1G6YkLv4MU9A/efb pPzfvBu9gcjShlWx7AcKXDvfCDtzKuP/WMyuF/I2MjQIkI9Dd4kaoWh3o2kQZsLv6+jD 5AqRJ5j2t8zsKY7VBXY+Ce8dkYy++aNpXdKqgcuRSk1yxT7Ncy3rYeI2nTEnE321eolh eVaj2d7Je+XepEfe4ibUjpKmrV7FLJExe0Q1g+gidkTUjPN0yMx4Fqnju16nu36dtrCu nbcUdnidHSr4Qz1RugOtu81E8ds24bUZ1oDNm/vyLbnJrQuQjAh/eGJGYBWLFtA48uHW i6Fw== 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=mIu+ijDO5otQgsLx5p5x/bgZ4iR+gvTG+pIJvK5djzs=; b=N5hQTPyf6Law/kIkkyVHt7V3O7Rrlq2w0xJCjrCojHssnNa5qY91Q7KCevWagqGV+8 xC8SsdW8ZIp2ileFKnb2PT1cKa3Sno28tOMC2Y3ND0Vb8XOMTgrFOFsp0wBDK4zMB9wS 5rR/vb+vhyI3NK9HAlO0YvlL0DYm9khn/4msNoZI4xDqDA+E0cKhdNDIPFSeGWO+wwaH o43njoRCIbx3eh6lg0M4RlOP32Ddi8/0feodfbU1BZZ4FO+Fhy+5T4vQd1ODWK8Qxcks AvW0YZniD86VS1QZOxl1kCiGmqJkqzrcXHZtbhzW9EzpT99lR3nCfryVpShofpvUWbbF +E9w== X-Gm-Message-State: AHQUAuZE0dNazpNYexs+BUcI0rVjtX+C9Uizm5cCMBLEx6YPpusAiG9y DTP9TBZrcfKTbWCmsGkLulK+PeYl X-Google-Smtp-Source: AHgI3IYrKtXnFSWd7vaVINU21oDd5FvrSiJyMH/jEYPCuKmMcpdRv0bwKi+1/+EqfXC4R2I8ucyFIQ== X-Received: by 2002:a63:1241:: with SMTP id 1mr4404973pgs.211.1550398281794; Sun, 17 Feb 2019 02:11:21 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id p2sm14023541pfp.125.2019.02.17.02.11.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:11:21 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:11:17 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 28/31] submodule-config.c: use repo_get_oid for reading .gitmodules Date: Sun, 17 Feb 2019 17:09:10 +0700 Message-Id: <20190217100913.4127-29-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 52702c62d9..ad4e2cf330 100644 --- a/submodule-config.c +++ b/submodule-config.c @@ -618,23 +618,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; } @@ -642,6 +635,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 Sun Feb 17 10:09:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816979 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 E0EA517D5 for ; Sun, 17 Feb 2019 10:11:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id CDB6D288DA for ; Sun, 17 Feb 2019 10:11:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id BF6512A263; Sun, 17 Feb 2019 10:11: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 AFE93288DA for ; Sun, 17 Feb 2019 10:11:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728367AbfBQKL1 (ORCPT ); Sun, 17 Feb 2019 05:11:27 -0500 Received: from mail-pg1-f170.google.com ([209.85.215.170]:35472 "EHLO mail-pg1-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKL1 (ORCPT ); Sun, 17 Feb 2019 05:11:27 -0500 Received: by mail-pg1-f170.google.com with SMTP id s198so7008877pgs.2 for ; Sun, 17 Feb 2019 02:11:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=H/Cj9bOgniwdLrXYD/VonptaCkLGW8sxgM0HLPyTfIw=; b=N4jEmX0uTmsizTctMMZc6mB0hL2YIo4H0vY1bTTMhDYScykQGkgtLz5Ldi2WRLcSXT JbETDWbySnswGF7cEJFVdHhJzLwkmYXUhgD64neirplQI1b1OEo4/W8lGiSd8cq2JW7s fyerTpFBB217mhgTlyJ+r4bR5C67Szrc6FvndMN2p6Tq+vJqgSytvQ2KQDHV2TJhh2CL TNnt3WbJWXn/+scaJHPOgQieNcTcdnPhjJzrjEMGEx4EQ3JfYDmVMXTjHPvGHEeEsh5q gZ/MbwdnMVu2FpdDyJqblEgCh/aTYeo1Zn2JhCdCY8ym6A9VU+iHlpzNSRfKghWW2pl4 +kDA== 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=H/Cj9bOgniwdLrXYD/VonptaCkLGW8sxgM0HLPyTfIw=; b=oYQJP9rhF4BWmcUFiwJQqQKYotmO3CwJe3wjKMTSDS3mYusaK0qmofdW0xfykJ6hmT aRYFFnXLSbere9sRSGxf9d2tkF7LdhLKSSCIuABWmcEICGCF+rq4XIogKMb8j7kHTRLT +Z+zgAzF6Whk+w6veCB3J2jUG8Fr2+p3Q/bsFBHKEu5jv+CFHuZkbs0ADpjjaGvNbqAs Xsk5yJbg1irM6RmQP8dwp5hQvc9J/5gKp0M2Zl2U3JMr5K9ETUgJbc0YT5tXXQU79Bmn knJgP6YkjiNhJulilmH5auMwTBCAHh7VJtE6/GSXc+dcsOMxnZH5ooGLO8wVy8ISGLzt hODA== X-Gm-Message-State: AHQUAuagt9WIIBnFNTrX8tB0JqyfpnxyHid0M3jHx9acn8SAeMVfpkMc tCNaot9wi5ZB2nvduV6eJtn93Ann X-Google-Smtp-Source: AHgI3IaanZlsGDbQ19F3rK3er0BWwvserQnzMEVSka7RzfViQc2gXADWewk0Qh/9AW+XImzqL3qtlw== X-Received: by 2002:a62:57dd:: with SMTP id i90mr18639802pfj.154.1550398286123; Sun, 17 Feb 2019 02:11:26 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id m67sm19682027pfm.73.2019.02.17.02.11.23 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:11:25 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:11:22 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 29/31] sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name Date: Sun, 17 Feb 2019 17:09:11 +0700 Message-Id: <20190217100913.4127-30-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 942d9912a2..da7035c261 100644 --- a/cache.h +++ b/cache.h @@ -1361,7 +1361,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 ca9e8a949e..a56df63d1e 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 Sun Feb 17 10:09:12 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816981 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 671A91390 for ; Sun, 17 Feb 2019 10:11:33 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 54B8D288DA for ; Sun, 17 Feb 2019 10:11:33 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 48DBC2A263; Sun, 17 Feb 2019 10:11: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 CBF86288DA for ; Sun, 17 Feb 2019 10:11:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727608AbfBQKLb (ORCPT ); Sun, 17 Feb 2019 05:11:31 -0500 Received: from mail-pg1-f194.google.com ([209.85.215.194]:37351 "EHLO mail-pg1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKLb (ORCPT ); Sun, 17 Feb 2019 05:11:31 -0500 Received: by mail-pg1-f194.google.com with SMTP id q206so7005584pgq.4 for ; Sun, 17 Feb 2019 02:11:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jleZNUN/XlwENcXCZNd5RkzR7bRh5KggGH/AZOUaIIY=; b=Iy57y6EKKTuDxwS4drpqjZdevDLgMm/hiYoO1sieLf93kSaAJkEekzjtWZ5F+96dJI MQ+V6Z7QViDT6M/l48aax6FVxZHUjJx67ldqUwveAQuASnneRpxDbXYpSZ/Iw49EJxG8 IM98ZhbzSFAd4llyv8ORqwhq12oJGGE6ZC/X0+oV8PzenxPx/rnZckbe2qiP0Il/+fZN WA3pk1puk3LIUBgLmHbLV4mVJr8EOO2Un1bsF9wQWyNhIekgVsmuDF3B19D/qpowlDBL TLcMxsmVaSpSoywOq+xlYhtyyTV5zuZ5XBS1ZmXP9jx3IYHAlzuImUxRRhEZ3Ux0V+FD P2JQ== 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=jleZNUN/XlwENcXCZNd5RkzR7bRh5KggGH/AZOUaIIY=; b=C8Gw3L/LbGbPWmJCuckVo5yQFUqwfFtXPYir/2EoRhltpwUWqvvE5fNvTkPRiy4hKN fFvrAuupTExxq8qVjogdobMQUgDGLz+wckVhphvPNLaZQTaBmoqCuKn2aWaqEtpAR3vC hszLApp2mAFL7xgv93/qTMyrLal9C1DtbzgtjaNNEQb6AozFtH/xWDjD6rB80bb/4c90 z8YWsGCwdc2dnfdVRq+ilatdBGpNqW3880CfbtJVOAjkDbd7A/l+2on3MAcnIHJdVCRa f0CH288BsDsIF2ojoUcO2RujgWwij/h4p8v+vzcwKrQ4ZuufyyY/maPamCZcQtEku9Jx EXng== X-Gm-Message-State: AHQUAuZuJsVvOj1eDlE52gZgI75cGzXiz/RLHk37c2phYvcC9fTwb7w8 rTZ23xnqkRHDzV/WRv/STiDAudE6 X-Google-Smtp-Source: AHgI3Ib/9vW+lmssDfLrm75mYb4hzR3Bl4MgcRbj0y5dES/23wl2lA+80rFF6nRrr19evOtzZiW52g== X-Received: by 2002:a62:170b:: with SMTP id 11mr18326139pfx.47.1550398290416; Sun, 17 Feb 2019 02:11:30 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id x23sm28315167pfe.0.2019.02.17.02.11.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:11:29 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:11:26 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 30/31] sha1-name.c: remove the_repo from other get_oid_* Date: Sun, 17 Feb 2019 17:09:12 +0700 Message-Id: <20190217100913.4127-31-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 da7035c261..7ce8c566fc 100644 --- a/cache.h +++ b/cache.h @@ -1355,12 +1355,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); @@ -1368,6 +1367,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 Sun Feb 17 10:09:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10816983 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 8470D17D5 for ; Sun, 17 Feb 2019 10:11:37 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7206D2A263 for ; Sun, 17 Feb 2019 10:11:37 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 666522A28C; Sun, 17 Feb 2019 10:11:37 +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 01A332A263 for ; Sun, 17 Feb 2019 10:11:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728368AbfBQKLg (ORCPT ); Sun, 17 Feb 2019 05:11:36 -0500 Received: from mail-pf1-f176.google.com ([209.85.210.176]:42559 "EHLO mail-pf1-f176.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726638AbfBQKLf (ORCPT ); Sun, 17 Feb 2019 05:11:35 -0500 Received: by mail-pf1-f176.google.com with SMTP id n74so7069520pfi.9 for ; Sun, 17 Feb 2019 02:11:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=yUWmu3SYh+C+hk+Q0YRtcHkEN0UG8bOFTUlr/9XrEhU=; b=cjr/CLwgZ9b9RdkwKF057MyPu4Qo3s3gUpFXdzeCeKzMu6YBwO5LpIr0vdEnhqarys LbhHa+OzLMTEeZIOMG69vnmk1WTxC3Ki+xFJtky6nEjtC3TXywPALI4eMN/7xDWYQLd9 2X+/cov4/aQmmOONu40rLyWMT15RFqBq9Ta88HFsaKNtwM9nyUp8HY9oOSGYt9K+KJWI UVaHX4XCFffjJMcQZp9r14EfKvU/JfmD+BGKq735nIE0rAM+f+eotoISkzl38CQJRtzS stpG/lUPtsWIVR9sRf/Vckwl5UH5WWaEYCmmoL2g4qnW4ll9S3ksxVLz3FLbF+U0LumJ jshA== 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=yUWmu3SYh+C+hk+Q0YRtcHkEN0UG8bOFTUlr/9XrEhU=; b=b/1/O1w9eiUBwVq1ANtUiEbt5VWafqLHZ8KJiRAgpuiYUbxM1fjub6iy5UAXm9Gxb3 /zBk+4aPM6+BZITH1MyNkvsLUUCVk7RGwrVrhOgcTuPLyXYru+FSonTSDeuFqXr0PnXq jQ/OzO0DX8igqIj4Hgs5E0E9WQL8xHrmE0DWbSWfzf/ll8uL/F7+MkKnL0/NupVzNuQB J9W6JuvMVPy463TMEoB6PE+xH1uZ/T8//1QPFqOTtm8eyBSt7s4HDC/2q+W+xzjMMBsD cdRomveVxbRwZEt+AsS1sXOb7xR/yB5PlHMhJRQFkw6tO+DjT49wMHlgeg5wY5B+h7I8 H+MA== X-Gm-Message-State: AHQUAubQxwTBFTZfcel0sySKpRfu4rwpldCbjk+ThMqxugtNF1gFoXf7 Ed0iS/NjXVdCbxN2yZm9cl+7mMOD X-Google-Smtp-Source: AHgI3IYKFEFkv1FGembHxjjvJolGTP6wP37tvrCgN1kGTIzBDPDPpRcIzJOv2kovW6cJjvcwpcwfMg== X-Received: by 2002:a62:f54d:: with SMTP id n74mr18393415pfh.98.1550398294721; Sun, 17 Feb 2019 02:11:34 -0800 (PST) Received: from ash ([115.72.21.220]) by smtp.gmail.com with ESMTPSA id s73sm27192722pfi.124.2019.02.17.02.11.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 02:11:34 -0800 (PST) Received: by ash (sSMTP sendmail emulation); Sun, 17 Feb 2019 17:11:30 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= Subject: [PATCH 31/31] sha1-name.c: remove the_repo from get_oid_mb() Date: Sun, 17 Feb 2019 17:09:13 +0700 Message-Id: <20190217100913.4127-32-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.rc0.328.g0e39304f8d In-Reply-To: <20190217100913.4127-1-pclouds@gmail.com> References: <20190217100913.4127-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 7ce8c566fc..24fbff94f7 100644 --- a/cache.h +++ b/cache.h @@ -1360,6 +1360,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); @@ -1373,6 +1374,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 *); @@ -1460,7 +1462,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;