From patchwork Sat Mar 30 11:18: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: 10878309 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 B43A1139A for ; Sat, 30 Mar 2019 11:20:39 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A069528E48 for ; Sat, 30 Mar 2019 11:20:39 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9451D28EEA; Sat, 30 Mar 2019 11:20: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 7A65928E9A for ; Sat, 30 Mar 2019 11:20:38 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730735AbfC3LUc (ORCPT ); Sat, 30 Mar 2019 07:20:32 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:34175 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730683AbfC3LUb (ORCPT ); Sat, 30 Mar 2019 07:20:31 -0400 Received: by mail-pg1-f193.google.com with SMTP id v12so2443530pgq.1 for ; Sat, 30 Mar 2019 04:20:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9Hh1qjhIYgsEJ1RAvKb6URhIj4fZF8d7gLklPr6lwvk=; b=UGijZ6CVxz6Pv/Sf5AsB9sx6vY05vsBWB2NqyxQ9EbnM/BojiLWozYJe1P+uACon9c /qPVzp4LZNycO25CJZVLEJg8QPeaKYlJMynfLIDlY21/TZrnF87x/SQQ5UCJ4oyCMaKV M8kI61w3+BSk9awPr56CbBK3IBoeFD05JkfmQ/+bN7zJSQMKrsyHeF7GQ4oEdCHJbgJQ ufocfZMXNZ2tABqB7EsONnr8sEeFTu7QK5FF6AUEuGWlzYNEcVeD71Mlq/kg4oBlWVyg eVJT+Y+r9Auu2RqAck58Hvbx3PdxcSzfj+Z67q0BNZpzdQQfnTMqPqkZ5fMMmt9olI/y hXRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9Hh1qjhIYgsEJ1RAvKb6URhIj4fZF8d7gLklPr6lwvk=; b=bJ8MqUONjpYXg8KNZvfyYLDL/MJUGjgV9vcOGXiiVq2WT2mJOcVC2T7drAoNbB0cDr 9WUHaeVwOIcXV2RqnGk/YyNshGG6D3sFhhBej0GCHRXHubf2Vkc6dK//Tb0kA3P02jpD OtkFPYeR0vpaPT0E///LRTiOHOD/Yug3X/o+sacQ1WZQGj0zUFFWIk9PUaHO7js9bTFB srtCYTKH8ccMtbC9x9U6jDeH2vnlq+tii9u8JfF2gQV79tKQOdcpIthmerQp34YFBCff 0PNkykLzkOJz+8SeCX+q5IEl93IFacHLS/qYGRO3uBYVkoWRhDv0mTnxYhVQqJLnX5U0 Bqjg== X-Gm-Message-State: APjAAAWs4iZBTpYnGzC+9U8tk3nTt5naC1E/+7OVbOPTCmD3g12py7fu XLIkxr418l2cLDJjapO00WMFoKQj X-Google-Smtp-Source: APXvYqxvGj7G//lRSm0/a3lO3df3+K8826rky0SjtC1C2sx+tQUtqsp4mUWe//DaxKy6s1sgx2kLWA== X-Received: by 2002:a62:2fc4:: with SMTP id v187mr54080582pfv.147.1553944830651; Sat, 30 Mar 2019 04:20:30 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id 10sm6973775pft.83.2019.03.30.04.20.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:20:29 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:20:25 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 01/31] packfile.c: add repo_approximate_object_count() Date: Sat, 30 Mar 2019 18:18:57 +0700 Message-Id: <20190330111927.18645-2-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- packfile.c | 14 +++++++------- packfile.h | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/packfile.c b/packfile.c index 16bcb75262..2ad4fab2f8 100644 --- a/packfile.c +++ b/packfile.c @@ -893,25 +893,25 @@ static void prepare_packed_git(struct repository *r); * all unreachable objects about to be pruned, in which case they're not really * interesting as a measure of repo size in the first place. */ -unsigned long approximate_object_count(void) +unsigned long repo_approximate_object_count(struct repository *r) { - if (!the_repository->objects->approximate_object_count_valid) { + if (!r->objects->approximate_object_count_valid) { unsigned long count; struct multi_pack_index *m; struct packed_git *p; - prepare_packed_git(the_repository); + prepare_packed_git(r); count = 0; - for (m = get_multi_pack_index(the_repository); m; m = m->next) + for (m = get_multi_pack_index(r); m; m = m->next) count += m->num_objects; - for (p = the_repository->objects->packed_git; p; p = p->next) { + for (p = r->objects->packed_git; p; p = p->next) { if (open_pack_index(p)) continue; count += p->num_objects; } - the_repository->objects->approximate_object_count = count; + r->objects->approximate_object_count = count; } - return the_repository->objects->approximate_object_count; + return r->objects->approximate_object_count; } static void *get_next_packed_git(const void *p) diff --git a/packfile.h b/packfile.h index d70c6d9afb..f04440f984 100644 --- a/packfile.h +++ b/packfile.h @@ -57,7 +57,8 @@ struct packed_git *get_all_packs(struct repository *r); * Give a rough count of objects in the repository. This sacrifices accuracy * for speed. */ -unsigned long approximate_object_count(void); +unsigned long repo_approximate_object_count(struct repository *r); +#define approximate_object_count() repo_approximate_object_count(the_repository) extern struct packed_git *find_sha1_pack(const unsigned char *sha1, struct packed_git *packs); From patchwork Sat Mar 30 11:18: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: 10878311 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 9136E139A for ; Sat, 30 Mar 2019 11:20:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7DC22288CB for ; Sat, 30 Mar 2019 11:20:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 71E0528E9A; Sat, 30 Mar 2019 11:20: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 29D51288CB for ; Sat, 30 Mar 2019 11:20:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730739AbfC3LUi (ORCPT ); Sat, 30 Mar 2019 07:20:38 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:40145 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730683AbfC3LUg (ORCPT ); Sat, 30 Mar 2019 07:20:36 -0400 Received: by mail-pf1-f193.google.com with SMTP id c207so2255730pfc.7 for ; Sat, 30 Mar 2019 04:20:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=SILCV0xL0rMhdc8DRhCUAEY33mnaNDt1h5vVG3Tug14=; b=DkJfXCmr/l3kNoxg49DDk7ecSuxkuLv6L7/pb93er/j8FfcTjKLn8VNQcm/ZfyBI7S eICVQkHuifBT/MrAajloyyoS51mp04EblZWr8kT3udj5JIQN3LQ9L+Jd/QqsjK6aqOC8 ISNTGymB3RXtdRNrg4py1H4TbKgE940IcPGJrQB8Y60zaLbElzJymL9wzSRXcMr/Q0YM 7awM9SlsqmZ9JDvM5rwWuB0mwUPKaSPrpQzXO+P0HuQZZRi9N4X2feYdntwpRD0lVnR+ 25yURqau5q4hw4b1kKtuLhGpcH1IaIjbZmDVYyj71akR6LTejTifi1hOQSvatm89p8+6 7xfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=SILCV0xL0rMhdc8DRhCUAEY33mnaNDt1h5vVG3Tug14=; b=mEfRgLtLWsOrtNn0tN7G4rW0dwH/oEUKaAVc8bLQR7K5SqwbcP4Qtxk9e0Vei5eV2l yfnXON2uklRu5zZgYGXs16gR65OOaFiyE0DEpdVv4BEXk3S2YGW2OhDMoesoZRWDGdat gDk2XDp6znYFdDXHtLDQHx4rhD2fZnY7kpTK8PVN/Othl442Axra0sVHF2vDaVl4mT4P C0nZxkQpZUIqJJ9Sx0w8TSRA92u3OpwffhTnAx5OZgC0fMszqUSzg/phGirLGjM2leSW gCIdxZdQ54rZUV8t0CurIT7tAF4puCBdExR4y4aEIgtG1lJxrK9QNieOASE/7PruE50X Wxow== X-Gm-Message-State: APjAAAV/RruZUekL7WYe9LXAh7VRLvtGnSG0ytpEavcrI56KWkrP5f5I b9mcfVhKwd8W2rUIK0gX2ABHHLfx X-Google-Smtp-Source: APXvYqyTL5HulneLSglWvaIlkvmdj0asUUTrd++mX4ZTBR3hwy2mevQvI4icSeiUS0rZ53oXvg2qqA== X-Received: by 2002:a65:624a:: with SMTP id q10mr23701681pgv.435.1553944835754; Sat, 30 Mar 2019 04:20:35 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id p3sm10599804pfp.136.2019.03.30.04.20.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:20:35 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:20:30 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 02/31] refs.c: add refs_ref_exists() Date: Sat, 30 Mar 2019 18:18:58 +0700 Message-Id: <20190330111927.18645-3-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- refs.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/refs.c b/refs.c index 142888a40a..b869f32d8b 100644 --- a/refs.c +++ b/refs.c @@ -241,9 +241,14 @@ int read_ref(const char *refname, struct object_id *oid) return read_ref_full(refname, RESOLVE_REF_READING, oid, NULL); } +static int refs_ref_exists(struct ref_store *refs, const char *refname) +{ + return !!refs_resolve_ref_unsafe(refs, refname, RESOLVE_REF_READING, NULL, NULL); +} + int ref_exists(const char *refname) { - return !!resolve_ref_unsafe(refname, RESOLVE_REF_READING, NULL, NULL); + return refs_ref_exists(get_main_ref_store(the_repository), refname); } static int match_ref_pattern(const char *refname, From patchwork Sat Mar 30 11:18: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: 10878317 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 71802139A for ; Sat, 30 Mar 2019 11:20:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5D788288CB for ; Sat, 30 Mar 2019 11:20:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 51D0728E48; Sat, 30 Mar 2019 11:20: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 01BD928F70 for ; Sat, 30 Mar 2019 11:20:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730644AbfC3LUm (ORCPT ); Sat, 30 Mar 2019 07:20:42 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:37012 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730683AbfC3LUl (ORCPT ); Sat, 30 Mar 2019 07:20:41 -0400 Received: by mail-pl1-f196.google.com with SMTP id q6so2224152pll.4 for ; Sat, 30 Mar 2019 04:20:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QNHEfU5Es+iTRROnoumQYR2DGfc6CnyeuJUutLTjvtc=; b=k4gC2F/pdEVY50j27ZA0dyWPBfwJoBvNMZxfD9JEv08u0dUtnzQvjcxgc01rSee1eY cANVVo4VYa7DkjUvg1uP9ea7s1xtyRB+sytJ0NKgSiIR2xbPq6n1XzX26ji9O2OAIRdR N7NjZGVmImfR0mTjD2kBnEh/X3ABkfKmLOkBQNTDqF069KwEC/E5++mam4D7qGLxEKDY 6C/uNhFzzUgM0jnbo9sLSDOt+h4IXfs/rAo6FGouWga5ThNkaqGpjBBBuyx+V8qNV5wy SpNuktmvaphFL/lx2paRnB6EO5BkvsICg2tzHCwzd/9nOsA7NxT41HW+mCtDvxtCGIcG bElg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=QNHEfU5Es+iTRROnoumQYR2DGfc6CnyeuJUutLTjvtc=; b=fP44CAHANS6N5QRZ1RmDNZNZH7zxgV35EYoblITULT9S8jFFCWWb8L9nKFjlc9nbtc sRcxVddBePDKscFZOFUbZkaHgrNYt5YMx0DZhye6i5uCtqpQmomyQzmV+pyfTzcY5oDw R8KpQj9U+PrGqMNzH88/k6X/KhpDXupY6DbF9ueUm87u/wYnbc9KdY0owlC9/vvyxxRI 8VhBxrjhyO9nrzsRbcoBnk8C12k4cabEwvAbRbdKmhX9fI8rA10f40xFIYSr1R6IjeXZ VPbNTCcEqDxzfv8wBMkhggQF7962Kzhf2qG4P8u+sGmaT8ERSVjO33b/Pxpw0827NkRu 2DjA== X-Gm-Message-State: APjAAAXMIsKBJiuT099svxWDBbZat1iQDZiXP7kIunokfVBbC2Nv6C+P 4QymDu32Lxg/8WQyrEY4fTDSezbP X-Google-Smtp-Source: APXvYqwggAaXdH9+29+ziTIl+JPRugUzTYAn2PcVzbuszmQ5mqYc93IrDAj0sHP8+y/f+KFaPwUGxQ== X-Received: by 2002:a17:902:2ec1:: with SMTP id r59mr53233220plb.171.1553944840814; Sat, 30 Mar 2019 04:20:40 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id e22sm6357001pfi.126.2019.03.30.04.20.37 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:20:40 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:20:36 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 03/31] refs.c: add refs_shorten_unambiguous_ref() Date: Sat, 30 Mar 2019 18:18:59 +0700 Message-Id: <20190330111927.18645-4-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- refs.c | 11 +++++++++-- refs.h | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/refs.c b/refs.c index b869f32d8b..3dde824aab 100644 --- a/refs.c +++ b/refs.c @@ -1169,7 +1169,8 @@ int update_ref(const char *msg, const char *refname, old_oid, flags, onerr); } -char *shorten_unambiguous_ref(const char *refname, int strict) +char *refs_shorten_unambiguous_ref(struct ref_store *refs, + const char *refname, int strict) { int i; static char **scanf_fmts; @@ -1247,7 +1248,7 @@ char *shorten_unambiguous_ref(const char *refname, int strict) strbuf_reset(&resolved_buf); strbuf_addf(&resolved_buf, rule, short_name_len, short_name); - if (ref_exists(resolved_buf.buf)) + if (refs_ref_exists(refs, resolved_buf.buf)) break; } @@ -1266,6 +1267,12 @@ char *shorten_unambiguous_ref(const char *refname, int strict) return xstrdup(refname); } +char *shorten_unambiguous_ref(const char *refname, int strict) +{ + return refs_shorten_unambiguous_ref(get_main_ref_store(the_repository), + refname, strict); +} + static struct string_list *hide_refs; int parse_hide_refs_config(const char *var, const char *value, const char *section) diff --git a/refs.h b/refs.h index 308fa1f03b..5627570241 100644 --- a/refs.h +++ b/refs.h @@ -462,6 +462,8 @@ int check_refname_format(const char *refname, int flags); const char *prettify_refname(const char *refname); +char *refs_shorten_unambiguous_ref(struct ref_store *refs, + const char *refname, int strict); char *shorten_unambiguous_ref(const char *refname, int strict); /** rename ref, return 0 on success **/ From patchwork Sat Mar 30 11:19: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: 10878319 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 23C5B139A for ; Sat, 30 Mar 2019 11:20:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0E6B528FEB for ; Sat, 30 Mar 2019 11:20:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 011772900A; Sat, 30 Mar 2019 11:20:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 78B6328FEB for ; Sat, 30 Mar 2019 11:20:51 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730762AbfC3LUt (ORCPT ); Sat, 30 Mar 2019 07:20:49 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:43469 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730757AbfC3LUs (ORCPT ); Sat, 30 Mar 2019 07:20:48 -0400 Received: by mail-pf1-f193.google.com with SMTP id c8so2246678pfd.10 for ; Sat, 30 Mar 2019 04:20:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0PazlTtVfhEjw1y44qBaTCCffQGEbZCrOeMwdGeo05I=; b=f+dDijMuC9YLQFhdcP46dJZ3XWscK83PQzuMIFdjll++ZxWXtb78DiZEMyHVX8uqJc v6EgARun5u9CPcKFfzc625EMyI0QoipNeNAYJSk0XyksQ2W++sklljGsNe5iI5s4FVZw Eb9495dORJOflZqkSsfUujPapgeKrfvt95N0O67K/6gkgJq2qaK2eIErOiwOiW9hoKV7 epgp7OeoeX6sxNrzPaWV2JOsF5fvCA8wo9XvMHAGQnK79B2nE2CVqpLMzdtX5NSvINfG Gc0F9JyQ0ZE4AgncQD7kKr5d/0Vt50emv/froSWd/919TpkzPYOgZDRpOkAhn4pSxrZP wn2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0PazlTtVfhEjw1y44qBaTCCffQGEbZCrOeMwdGeo05I=; b=kqmoJO0CdkrZuQCFo9cJwqpGDx4lEeYcm1VMCwrpIRRagr1p++QqUz7hLBQ5l7hTOC wU/veBbL/GYZH7u9ZBwF2aSd+UpkTW3H/dgkONpTP75Vg5+gLK/MYd1LKlrLW3sjZBC6 jhOsc4VL1SmBNEleopZsZlBjbSaZ9qjl8WJjgiKzlNxOMzXubcpzUCo4aarIXddsfXFy Kr7HYXBo5nXfcPUccxtubA5gWKkCrfFbqCPkG2+WfXpT+H3u5DcHSp79pDhlydHGBzKX 00rASyukH6Cm6axS8iCRYPWzzzZIbb0tSVZmaTf/6xe1lSzGbOgbdgmVKcE2BRy/cl6T JT6w== X-Gm-Message-State: APjAAAUKi5EREBxktVv+KIXfRdh3OX1bPI91ZlF5hEea2rYvzVHc3/Am UZJlD1wFtch6W7MbRWBER4E4rLeG X-Google-Smtp-Source: APXvYqzPYp6ROKdgFtrRFuX5fZSsGmwnaDqSWdJt7up0yXPR0IK1kve35BKk6K3MeceEFFQ/bG6yww== X-Received: by 2002:aa7:8092:: with SMTP id v18mr36403919pff.35.1553944847949; Sat, 30 Mar 2019 04:20:47 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id h65sm8583065pgc.93.2019.03.30.04.20.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:20:45 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:20:41 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 04/31] refs.c: remove the_repo from substitute_branch_name() Date: Sat, 30 Mar 2019 18:19:00 +0700 Message-Id: <20190330111927.18645-5-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 8 ++++++-- refs.c | 9 +++++---- sha1-name.c | 8 ++++++-- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/cache.h b/cache.h index ac92421f3a..fcb24b5781 100644 --- a/cache.h +++ b/cache.h @@ -1468,8 +1468,12 @@ extern int parse_oid_hex(const char *hex, struct object_id *oid, const char **en #define INTERPRET_BRANCH_LOCAL (1<<0) #define INTERPRET_BRANCH_REMOTE (1<<1) #define INTERPRET_BRANCH_HEAD (1<<2) -extern int interpret_branch_name(const char *str, int len, struct strbuf *, - unsigned allowed); +int repo_interpret_branch_name(struct repository *r, + const char *str, int len, + struct strbuf *buf, + unsigned allowed); +#define interpret_branch_name(str, len, buf, allowed) \ + repo_interpret_branch_name(the_repository, str, len, buf, allowed) extern int get_oid_mb(const char *str, struct object_id *oid); extern int validate_headref(const char *ref); diff --git a/refs.c b/refs.c index 3dde824aab..44df049796 100644 --- a/refs.c +++ b/refs.c @@ -539,10 +539,11 @@ void expand_ref_prefix(struct argv_array *prefixes, const char *prefix) * later free()ing) if the string passed in is a magic short-hand form * to name a branch. */ -static char *substitute_branch_name(const char **string, int *len) +static char *substitute_branch_name(struct repository *r, + const char **string, int *len) { struct strbuf buf = STRBUF_INIT; - int ret = interpret_branch_name(*string, *len, &buf, 0); + int ret = repo_interpret_branch_name(r, *string, *len, &buf, 0); if (ret == *len) { size_t size; @@ -556,7 +557,7 @@ static char *substitute_branch_name(const char **string, int *len) int dwim_ref(const char *str, int len, struct object_id *oid, char **ref) { - char *last_branch = substitute_branch_name(&str, &len); + char *last_branch = substitute_branch_name(the_repository, &str, &len); int refs_found = expand_ref(str, len, oid, ref); free(last_branch); return refs_found; @@ -596,7 +597,7 @@ int expand_ref(const char *str, int len, struct object_id *oid, char **ref) int dwim_log(const char *str, int len, struct object_id *oid, char **log) { - char *last_branch = substitute_branch_name(&str, &len); + char *last_branch = substitute_branch_name(the_repository, &str, &len); const char **p; int logs_found = 0; struct strbuf path = STRBUF_INIT; diff --git a/sha1-name.c b/sha1-name.c index 6dda2c16df..d535bb82f7 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1427,13 +1427,17 @@ static int interpret_branch_mark(const char *name, int namelen, return len + at; } -int interpret_branch_name(const char *name, int namelen, struct strbuf *buf, - unsigned allowed) +int repo_interpret_branch_name(struct repository *r, + const char *name, int namelen, + struct strbuf *buf, + unsigned allowed) { char *at; const char *start; int len; + if (r != the_repository) + BUG("interpret_branch_name() does not really use 'r' yet"); if (!namelen) namelen = strlen(name); From patchwork Sat Mar 30 11:19: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: 10878321 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 20474139A for ; Sat, 30 Mar 2019 11:20:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 07D6A28FEB for ; Sat, 30 Mar 2019 11:20:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F04762900A; Sat, 30 Mar 2019 11:20:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9173828FEB for ; Sat, 30 Mar 2019 11:20:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730757AbfC3LUx (ORCPT ); Sat, 30 Mar 2019 07:20:53 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:40365 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730510AbfC3LUx (ORCPT ); Sat, 30 Mar 2019 07:20:53 -0400 Received: by mail-pl1-f194.google.com with SMTP id b11so2213807plr.7 for ; Sat, 30 Mar 2019 04:20:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=DLHFfdnN0jx4Qdk7kWZsPEECXBZdnTGBSUUpleGoRQ8=; b=I+sTZ4120m27/Cp8RO1DlGTGfiU15SuOJO+4Pg4elb30OyVosZ2jKF6s0yRIpXKBhA 9cSdAMPzqsB5p/cJBSCudCO7NKoBJ2RGuZ3UYWbHJjSLDjG9Kz2fVQqC/3FrQFkqQg8E BqPAdPtQHQpKyAfQihOgRyPs3PKY9qAI9aubIqQa2QG+GQIzURV+LfDXQw6ozwFmCTDP XIXrD2nDBTzDGDPz9f5ZOGLqKx2qnB0u+0q8cC/TcHYZj/Fr1H888bUiGbRiLRBTay3b gUCFgbxpvNfb3upg1YT3w944gnqFX8sVJ34ZMTRKBnApUpn64jBm0sFIg5GorJ+oblWV CYjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DLHFfdnN0jx4Qdk7kWZsPEECXBZdnTGBSUUpleGoRQ8=; b=Ay2lGFzqBIxBN4ZWEAkKLoBtbXVTP8zAgokTj9TdXHQ4QVo5+wv9UzU+QpO6ih8KcR UPkRLoF8SGr0qC9RWOr5b2N7HjJ8Nl8eqkKnlfU+3CyHFWWxq6iJvihDfpF3dSwtdFO+ 51sxLv9UfQ6SjbXc1ov6kOm/1GTbvm3zM3CQjDEIEUpUzEYcII2vRvem2K6tBmukByGo +0vEj0RZZaW4cryTXADx4nxjaebKnRJ3tPZhWe6qsBa3TOnJuYVIiK5Bi/r39ttAFwHx T9ozLT3k7LPJIFtvciYjkzWY12dISnJvoRXbWx+r9mVRSzsCNsOnwn2XEsdka4l2tIUT pCiw== X-Gm-Message-State: APjAAAW7CJvPWvEWogIheozSfPRpU/O37iupJyzne1Zw18svWyDLvYdv fYc6n0uC0qtEg045xQk3s+dUyVMn X-Google-Smtp-Source: APXvYqxaBaWtVz6y8Wph1mgK9v4BBC0ixfOdrBAE9iLdbHeDGBrxev/tM50HHKcdLUYmse65BiDz9A== X-Received: by 2002:a17:902:2a29:: with SMTP id i38mr55159750plb.22.1553944852822; Sat, 30 Mar 2019 04:20:52 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id p3sm9599302pfn.167.2019.03.30.04.20.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:20:52 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:20:48 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 05/31] refs.c: remove the_repo from expand_ref() Date: Sat, 30 Mar 2019 18:19:01 +0700 Message-Id: <20190330111927.18645-6-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- refs.c | 10 ++++++---- refs.h | 2 +- upload-pack.c | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/refs.c b/refs.c index 44df049796..1f5864aa36 100644 --- a/refs.c +++ b/refs.c @@ -558,12 +558,13 @@ static char *substitute_branch_name(struct repository *r, int dwim_ref(const char *str, int len, struct object_id *oid, char **ref) { char *last_branch = substitute_branch_name(the_repository, &str, &len); - int refs_found = expand_ref(str, len, oid, ref); + int refs_found = expand_ref(the_repository, str, len, oid, ref); free(last_branch); return refs_found; } -int expand_ref(const char *str, int len, struct object_id *oid, char **ref) +int expand_ref(struct repository *repo, const char *str, int len, + struct object_id *oid, char **ref) { const char **p, *r; int refs_found = 0; @@ -578,8 +579,9 @@ int expand_ref(const char *str, int len, struct object_id *oid, char **ref) this_result = refs_found ? &oid_from_ref : oid; strbuf_reset(&fullref); strbuf_addf(&fullref, *p, len, str); - r = resolve_ref_unsafe(fullref.buf, RESOLVE_REF_READING, - this_result, &flag); + r = refs_resolve_ref_unsafe(get_main_ref_store(repo), + fullref.buf, RESOLVE_REF_READING, + this_result, &flag); if (r) { if (!refs_found++) *ref = xstrdup(r); diff --git a/refs.h b/refs.h index 5627570241..b630d5bde7 100644 --- a/refs.h +++ b/refs.h @@ -148,7 +148,7 @@ int refname_match(const char *abbrev_name, const char *full_name); struct argv_array; void expand_ref_prefix(struct argv_array *prefixes, const char *prefix); -int expand_ref(const char *str, int len, struct object_id *oid, char **ref); +int expand_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); int dwim_ref(const char *str, int len, struct object_id *oid, char **ref); int dwim_log(const char *str, int len, struct object_id *oid, char **ref); diff --git a/upload-pack.c b/upload-pack.c index d098ef5982..56505d60c3 100644 --- a/upload-pack.c +++ b/upload-pack.c @@ -834,7 +834,7 @@ static int process_deepen_not(const char *line, struct string_list *deepen_not, if (skip_prefix(line, "deepen-not ", &arg)) { char *ref = NULL; struct object_id oid; - if (expand_ref(arg, strlen(arg), &oid, &ref) != 1) + if (expand_ref(the_repository, arg, strlen(arg), &oid, &ref) != 1) die("git upload-pack: ambiguous deepen-not: %s", line); string_list_append(deepen_not, ref); free(ref); From patchwork Sat Mar 30 11:19: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: 10878323 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 0638C13B5 for ; Sat, 30 Mar 2019 11:21:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E4D8A28FEB for ; Sat, 30 Mar 2019 11:21:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D4EF42900A; Sat, 30 Mar 2019 11:21: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 8151528FEB for ; Sat, 30 Mar 2019 11:21:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730776AbfC3LVA (ORCPT ); Sat, 30 Mar 2019 07:21:00 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:46851 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730414AbfC3LU6 (ORCPT ); Sat, 30 Mar 2019 07:20:58 -0400 Received: by mail-pl1-f193.google.com with SMTP id y6so2210179pll.13 for ; Sat, 30 Mar 2019 04:20:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=10ZYZz/KCtQq+hTWl+4RRZs4YFEAPYAluyqXGvx5xco=; b=c9b4MHF8/qOwzP9en5FUc5ANBWLNXI5uifHkTZUMxuA8DBQdOfgK3lqvzgIxOle/2w jvSVIxwSLw8ObyF7kktIA4w/w/sOLB61PsUfuGfflqA9dYHltennFepPZT9xG3LoiYYb RgsUHUwqV3RMfL/NvvHygGlyb8G0MGqrdvAad9hHB4PkiGlF2uc/2KC/JVX9NeN5GRzK NYNkNB+tVjY5A0H6F3TFHy8AMnu9yHlofarywkAvUSjI34trcmXIGawoGSrck4GUp6PR jfRrKcLIeLb8DgaN4qrj2Op8CWVkd0yjhtRl+byfgnG2IILAwpBnOlQU3QAg1CqI/pfc 8Gxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=10ZYZz/KCtQq+hTWl+4RRZs4YFEAPYAluyqXGvx5xco=; b=B36BUqDgoTrYZeQThLQTejYHkUqSdujxDAWQq7cKGU/cAQVHStc0+MTDe/YEyciWIl NKapiKi4tYPI8SpNxvXQZ/Yag+iO7Test5Gy2m6PrfB7VOtjNjNIPBGBuugHKJ3doZOm 8DvBpW2t2QaNcJwamdVqw0BshIgK+cucxjxMsu+Z3Kz0w8c8WmDlCgcJjfugwYa/Z4s1 AZ0fWKBzsMbNycYIshvdrGTbj3z+ZGyP59WrFvnw5Ihzr8NDwIuRoc03dWK4O9/wCOFJ Af5ezByTJWOPI6I3XVzkXHCjgTaNhIqyWt4GJvl5tKoTKuiA3E6v2EYbjamyza0oh1oy Iiyw== X-Gm-Message-State: APjAAAXRP0alDVOyc0ZLR57Dua5bCymaJkdUDFp+ZPU1cfwhvlP2/gOv aBhVuuYJTJEZhuxWxNASyKRFc9rw X-Google-Smtp-Source: APXvYqzZz1wzbZ4K65mlegrNZ8cbYqAQkwqW9dQMW3/nWrmVs4pKnX+TjqARJW9Mz+K1Pn4FZ+xg7w== X-Received: by 2002:a17:902:b407:: with SMTP id x7mr4555553plr.288.1553944857715; Sat, 30 Mar 2019 04:20:57 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id r3sm18977057pgb.82.2019.03.30.04.20.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:20:57 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:20:53 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 06/31] refs.c: add repo_dwim_ref() Date: Sat, 30 Mar 2019 18:19:02 +0700 Message-Id: <20190330111927.18645-7-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- refs.c | 12 +++++++++--- refs.h | 1 + 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/refs.c b/refs.c index 1f5864aa36..bd0fec5776 100644 --- a/refs.c +++ b/refs.c @@ -555,14 +555,20 @@ static char *substitute_branch_name(struct repository *r, return NULL; } -int dwim_ref(const char *str, int len, struct object_id *oid, char **ref) +int repo_dwim_ref(struct repository *r, const char *str, int len, + struct object_id *oid, char **ref) { - char *last_branch = substitute_branch_name(the_repository, &str, &len); - int refs_found = expand_ref(the_repository, str, len, oid, ref); + char *last_branch = substitute_branch_name(r, &str, &len); + int refs_found = expand_ref(r, str, len, oid, ref); free(last_branch); return refs_found; } +int dwim_ref(const char *str, int len, struct object_id *oid, char **ref) +{ + return repo_dwim_ref(the_repository, str, len, oid, ref); +} + int expand_ref(struct repository *repo, const char *str, int len, struct object_id *oid, char **ref) { diff --git a/refs.h b/refs.h index b630d5bde7..fd3dc1d0f4 100644 --- a/refs.h +++ b/refs.h @@ -149,6 +149,7 @@ struct argv_array; void expand_ref_prefix(struct argv_array *prefixes, const char *prefix); int expand_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); +int repo_dwim_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); int dwim_ref(const char *str, int len, struct object_id *oid, char **ref); int dwim_log(const char *str, int len, struct object_id *oid, char **ref); From patchwork Sat Mar 30 11:19: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: 10878325 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 E8E2313B5 for ; Sat, 30 Mar 2019 11:21:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D077C28FEB for ; Sat, 30 Mar 2019 11:21:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id C1F3D2900A; Sat, 30 Mar 2019 11:21: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 649F028FEB for ; Sat, 30 Mar 2019 11:21:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730777AbfC3LVE (ORCPT ); Sat, 30 Mar 2019 07:21:04 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:42060 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730414AbfC3LVD (ORCPT ); Sat, 30 Mar 2019 07:21:03 -0400 Received: by mail-pl1-f194.google.com with SMTP id cv12so2217302plb.9 for ; Sat, 30 Mar 2019 04:21:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=szpMHP8EhvpaCOO0W8tVbc6AFYjGROhwwjWwnfbVc9o=; b=UaPsLQTzrlT9nR6EBwN1KEt8/7ZJ29ry8K6uDDqTgCFtSHynHxI91XYuaVFC07bE+S 63yvq3eMDb8XnXMS2GQsHvxrbWc5aemoXFCGffVC95CEYRXiOtOFPc1j52TziIWDiTvm M5UlHaTc+m341MhFltQOQaDIsLBS+hTyEQvB629qGFQD6uvd3M+3u693UaZEphn5hQUn L+YuriNP+uPGwPXwedLjZPjDcJHre3d4rVZo0u0BSiTK/pIJQ+c3R4D7PNATX3ZM4TN0 cNgCg+ek2Jfj9+FDE+NciRE69toVsbVGTMXR2jJ+S/5DXxLMXQF5JWnnWUxIWpQkdXfq 1bBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=szpMHP8EhvpaCOO0W8tVbc6AFYjGROhwwjWwnfbVc9o=; b=n9B/5HABuAGylpe2XrT8T/9Ze1ku8egBEiv3LNPytxQCuIBJHrgEhx9qI2ojUSCDjp hbe99MyEkJ5U/u8cOFChhlTVhUKX11koX26b20OuI9aLpWS0EBtyT2ulxvlH37ZnPoKH aGKjH5EVY1+kVA6Eb8DhF1YCQ++iB5Ha/hT3g2PUXeL12JB4YvGdCqiuc21wFCYHO5JF FjqTpb0C3BJ/snAhGsmr3JqmBPot/HXanNfPhBCB2S1S0yFp+rr0kcW68oAX48mjmT14 5uJpx6V1r/yQBzLdzgK1Tc5RTPaOFcRSvS/PFkbw1ZVaFlJOHwfyuYhrxVrRJNHx8Bmm AoSw== X-Gm-Message-State: APjAAAW1P1eJtKlXHJZgBNijn+9VU0a/g0xnXW4RGLkicpIHmm3hlZ9J x4jJ6u4FdfnqiWrEkPayfb82b7AT X-Google-Smtp-Source: APXvYqx44OsJ3t4MAcU/i/2C4MB6xuCxrIkOTeK7w43sv2L6TnF9eSS82j/y8TQlUUWNMgktRlKmbQ== X-Received: by 2002:a17:902:282b:: with SMTP id e40mr53647238plb.111.1553944862652; Sat, 30 Mar 2019 04:21:02 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id d69sm8651263pfg.26.2019.03.30.04.20.59 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:02 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:20:58 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 07/31] refs.c: add repo_dwim_log() Date: Sat, 30 Mar 2019 18:19:03 +0700 Message-Id: <20190330111927.18645-8-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- refs.c | 21 +++++++++++++++------ refs.h | 1 + 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/refs.c b/refs.c index bd0fec5776..edea001446 100644 --- a/refs.c +++ b/refs.c @@ -603,9 +603,11 @@ int expand_ref(struct repository *repo, const char *str, int len, return refs_found; } -int dwim_log(const char *str, int len, struct object_id *oid, char **log) +int repo_dwim_log(struct repository *r, const char *str, int len, + struct object_id *oid, char **log) { - char *last_branch = substitute_branch_name(the_repository, &str, &len); + struct ref_store *refs = get_main_ref_store(r); + char *last_branch = substitute_branch_name(r, &str, &len); const char **p; int logs_found = 0; struct strbuf path = STRBUF_INIT; @@ -617,13 +619,15 @@ int dwim_log(const char *str, int len, struct object_id *oid, char **log) strbuf_reset(&path); strbuf_addf(&path, *p, len, str); - ref = resolve_ref_unsafe(path.buf, RESOLVE_REF_READING, - &hash, NULL); + ref = refs_resolve_ref_unsafe(refs, path.buf, + RESOLVE_REF_READING, + &hash, NULL); if (!ref) continue; - if (reflog_exists(path.buf)) + if (refs_reflog_exists(refs, path.buf)) it = path.buf; - else if (strcmp(ref, path.buf) && reflog_exists(ref)) + else if (strcmp(ref, path.buf) && + refs_reflog_exists(refs, ref)) it = ref; else continue; @@ -639,6 +643,11 @@ int dwim_log(const char *str, int len, struct object_id *oid, char **log) return logs_found; } +int dwim_log(const char *str, int len, struct object_id *oid, char **log) +{ + return repo_dwim_log(the_repository, str, len, oid, log); +} + static int is_per_worktree_ref(const char *refname) { return !strcmp(refname, "HEAD") || diff --git a/refs.h b/refs.h index fd3dc1d0f4..859dffe691 100644 --- a/refs.h +++ b/refs.h @@ -150,6 +150,7 @@ void expand_ref_prefix(struct argv_array *prefixes, const char *prefix); int expand_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); int repo_dwim_ref(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); +int repo_dwim_log(struct repository *r, const char *str, int len, struct object_id *oid, char **ref); int dwim_ref(const char *str, int len, struct object_id *oid, char **ref); int dwim_log(const char *str, int len, struct object_id *oid, char **ref); From patchwork Sat Mar 30 11:19: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: 10878327 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 6574C139A for ; Sat, 30 Mar 2019 11:21:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5054228FEB for ; Sat, 30 Mar 2019 11:21:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 44A0D2900A; Sat, 30 Mar 2019 11:21: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 D395328FEB for ; Sat, 30 Mar 2019 11:21:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730780AbfC3LVI (ORCPT ); Sat, 30 Mar 2019 07:21:08 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:37885 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730414AbfC3LVI (ORCPT ); Sat, 30 Mar 2019 07:21:08 -0400 Received: by mail-pg1-f196.google.com with SMTP id q206so2435397pgq.4 for ; Sat, 30 Mar 2019 04:21:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=LaAroo8H6l5o6UF7G2ggzqIjs+ycGdPBE3mfbGzd8Qc=; b=udxXEFznlflb8FuPoyglbDtxFlHYRK81YGvWkedN0BmFfVLmTKuE/0C/zA7LFidoAS s2vXT2hfQrrji3mkv+M0LpI2ajAEI+ZwVCRZwM2QUAUSALORhGpNp25jai3EM2L55QNA rbCgqLYSujr2T/q62VNrxx2Owt7pDKp8/xn4141eRhBvJjjkfyxKcjQ5Afl0Nx3CgdzJ AMcwciLCGzlzJqnn6g6VzTtATjnW5ZP07jCfhPMDRdrC9VHorHT4sCmch9xJSF9RdcEU e9EDEEUM4YQKN3E7nnoFw0fqhH/ycJYf5MWvk4rz0w89FrIbMtOmvOwfu55G5Ye6LMlF oD2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LaAroo8H6l5o6UF7G2ggzqIjs+ycGdPBE3mfbGzd8Qc=; b=ZYUXcUWNfPEhCN8NFr7Heye0VYHy7CzWGjLcKrhb0qTgiKYo3pJT+qnx7vLyzyUJXk xkTd9MjNiudbIM+SrWq33Ekv3eROz7II5IUGZ5djfKA0yHVMcsTx8g3rfPzeE30Cvf87 4T7APn62Ldjg72dw0+uWF/UKUW4wdfZov0PnxKgz+feEHolqObeSRPr37yfl/gXrUOtC eRK9BdN/dT9GwmLiSw265KyzlGaiUK9WNhFBvw7J01W4+S6Rp9a+Jh47q6o0c6Kxe5wO cnvFcLQBA44Iy2MKfYu4ZHeh0z8deqlNwgo94hxK8xWAv7axXprxU4lAHqdW2IBhMnfz 72cQ== X-Gm-Message-State: APjAAAXt4FI3vPh5ulU7TrJieTJoB6LTeyNIvizmmbv2d7V8bdVHDmwN ha+vzbfgd0dRiJoZPk/SJKyc14ng X-Google-Smtp-Source: APXvYqxhYtW6b3J2O9VhfmpYBwfQhCy3i2ybEXMzyrf7igjUlhW3hcHEsWEb0MZ36j3Z5lwpNfRJiw== X-Received: by 2002:aa7:9095:: with SMTP id i21mr30016520pfa.134.1553944867392; Sat, 30 Mar 2019 04:21:07 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id o5sm19441001pfa.135.2019.03.30.04.21.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:06 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:02 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 08/31] refs.c: remove the_repo from read_ref_at() Date: Sat, 30 Mar 2019 18:19:04 +0700 Message-Id: <20190330111927.18645-9-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- builtin/show-branch.c | 6 ++++-- refs.c | 7 ++++--- refs.h | 3 ++- sha1-name.c | 3 ++- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/builtin/show-branch.c b/builtin/show-branch.c index 934e514944..082daeac32 100644 --- a/builtin/show-branch.c +++ b/builtin/show-branch.c @@ -753,7 +753,8 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) /* Ah, that is a date spec... */ timestamp_t at; at = approxidate(reflog_base); - read_ref_at(ref, flags, at, -1, &oid, NULL, + read_ref_at(get_main_ref_store(the_repository), + ref, flags, at, -1, &oid, NULL, NULL, NULL, &base); } } @@ -765,7 +766,8 @@ int cmd_show_branch(int ac, const char **av, const char *prefix) timestamp_t timestamp; int tz; - if (read_ref_at(ref, flags, 0, base + i, &oid, &logmsg, + if (read_ref_at(get_main_ref_store(the_repository), + ref, flags, 0, base + i, &oid, &logmsg, ×tamp, &tz, NULL)) { reflog = i; break; diff --git a/refs.c b/refs.c index edea001446..92d1f6dbdd 100644 --- a/refs.c +++ b/refs.c @@ -967,7 +967,8 @@ static int read_ref_at_ent_oldest(struct object_id *ooid, struct object_id *noid return 1; } -int read_ref_at(const char *refname, unsigned int flags, timestamp_t at_time, int cnt, +int read_ref_at(struct ref_store *refs, const char *refname, + unsigned int flags, timestamp_t at_time, int cnt, struct object_id *oid, char **msg, timestamp_t *cutoff_time, int *cutoff_tz, int *cutoff_cnt) { @@ -983,7 +984,7 @@ int read_ref_at(const char *refname, unsigned int flags, timestamp_t at_time, in cb.cutoff_cnt = cutoff_cnt; cb.oid = oid; - for_each_reflog_ent_reverse(refname, read_ref_at_ent, &cb); + refs_for_each_reflog_ent_reverse(refs, refname, read_ref_at_ent, &cb); if (!cb.reccnt) { if (flags & GET_OID_QUIETLY) @@ -994,7 +995,7 @@ int read_ref_at(const char *refname, unsigned int flags, timestamp_t at_time, in if (cb.found_it) return 0; - for_each_reflog_ent(refname, read_ref_at_ent_oldest, &cb); + refs_for_each_reflog_ent(refs, refname, read_ref_at_ent_oldest, &cb); return 1; } diff --git a/refs.h b/refs.h index 859dffe691..8f9cbf8a93 100644 --- a/refs.h +++ b/refs.h @@ -388,7 +388,8 @@ int refs_create_reflog(struct ref_store *refs, const char *refname, int safe_create_reflog(const char *refname, int force_create, struct strbuf *err); /** Reads log for the value of ref during at_time. **/ -int read_ref_at(const char *refname, unsigned int flags, +int read_ref_at(struct ref_store *refs, + const char *refname, unsigned int flags, timestamp_t at_time, int cnt, struct object_id *oid, char **msg, timestamp_t *cutoff_time, int *cutoff_tz, int *cutoff_cnt); diff --git a/sha1-name.c b/sha1-name.c index d535bb82f7..15a1107998 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -849,7 +849,8 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, return -1; } } - if (read_ref_at(real_ref, flags, at_time, nth, oid, NULL, + if (read_ref_at(get_main_ref_store(the_repository), + real_ref, flags, at_time, nth, oid, NULL, &co_time, &co_tz, &co_cnt)) { if (!len) { if (starts_with(real_ref, "refs/heads/")) { From patchwork Sat Mar 30 11:19: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: 10878329 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 3EE751575 for ; Sat, 30 Mar 2019 11:21:15 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2B7A128FEB for ; Sat, 30 Mar 2019 11:21:15 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1F30D2900A; Sat, 30 Mar 2019 11:21:15 +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 BDFA028FEB for ; Sat, 30 Mar 2019 11:21:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730785AbfC3LVN (ORCPT ); Sat, 30 Mar 2019 07:21:13 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:42680 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730782AbfC3LVN (ORCPT ); Sat, 30 Mar 2019 07:21:13 -0400 Received: by mail-pf1-f194.google.com with SMTP id r15so2248070pfn.9 for ; Sat, 30 Mar 2019 04:21:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=swfM3Ce7DzBzcK6f0IRnRqVMGoBZxgK3ndAeGWegqo4=; b=rPcB/1VFz2CuP4KyG1N+EnDNZ7ELlR/VmgGRlqfVMwsnsUB+TF7Qik6hieUlJMqyZY yGCdt0MNWLI7FuOGYZw4hFaoeN8lmeZsG5RM0XXidNxtf4oFrUvVar4FGgjIglpyH5+P ikADnlp2vwiXwxcewSOwJ2lhhkp6B9QBnpofXMEUw+Uq1mYGLdb5ITtPHsS5mi/IQi2r DVQ964mSMGcRLBrc6g4nLPgfKBreJTp3D+4twrauttVVuToFbuEnZvP7vpVxdyA8ZgAk 5xe4O2WiHKe9GV47GiHqt406lz+vRT9fQTQRny2DRd5Ii/4JwhSdd4CvrvjSrywTLuaV h48w== 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=swfM3Ce7DzBzcK6f0IRnRqVMGoBZxgK3ndAeGWegqo4=; b=Gks4k0Kbm7NcalF3okXW55B7J0NQhDcW9J/8R3nwm73zTGAhlEv4yl5XBzJM4I8nFZ WuJmjkqrSUvcLxqS5mAvbiYUjSTRONK3mPliozHF8n6aH/LRqUU2RHvrbgi0n2Vx4PRc 0YoMS58PGfdgQ+DxNu+hXc/+T3g5tzfs7dtE3lfKs8MgQPZucORdUzNHNK7nfCJLVIwN e27NaqqF1MaFlr0ZQS5gxQjHypmAs55NaRlS9waenYyV64t0Mdfh0c80JvwAvXcjp7hw FIvRneE+T29Ugm/od8PBvKfZbUnq+yuso1uiCvD091jkBp6qkRAi35IgO9TJtbwV4ZEI NlFQ== X-Gm-Message-State: APjAAAWCV5xr2cWca0Q0K1ltXyrZ5azkts9jV3Omqg/QkSowzemVBEuE UmgTc2n6lbOOgwnio0AWxkRMBW5x X-Google-Smtp-Source: APXvYqz3uGAvfb7HhB905V2HuwzZ0J0B8Syw7Qm+/5zPbH4/3+s+e5t7rmSpxHR6NPnjPkAOQxOurg== X-Received: by 2002:a62:fb10:: with SMTP id x16mr52438005pfm.5.1553944872407; Sat, 30 Mar 2019 04:21:12 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id n5sm5777831pgp.80.2019.03.30.04.21.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:11 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:07 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 09/31] commit.c: add repo_get_commit_tree() Date: Sat, 30 Mar 2019 18:19:05 +0700 Message-Id: <20190330111927.18645-10-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-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 Sat Mar 30 11:19: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: 10878331 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 088CD1575 for ; Sat, 30 Mar 2019 11:21:20 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E871028FEB for ; Sat, 30 Mar 2019 11:21:19 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DCB652900A; Sat, 30 Mar 2019 11:21:19 +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 8C68E28FEB for ; Sat, 30 Mar 2019 11:21:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730791AbfC3LVS (ORCPT ); Sat, 30 Mar 2019 07:21:18 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:34231 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730787AbfC3LVS (ORCPT ); Sat, 30 Mar 2019 07:21:18 -0400 Received: by mail-pg1-f196.google.com with SMTP id v12so2444110pgq.1 for ; Sat, 30 Mar 2019 04:21:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aTA8uZjHYmU6mFrJRdjj2PyQx8+QjT2oIRRXCztOqnU=; b=DF/9jLnaXwtu1YxOv0Sr1AcuWs85kvdk3kiSfNv08MPS8h2iF7BnPf3TdbnJDc4BvN d9WL0MbKVwWl9ZpxHVzHmPdxjHPIQaejz4i0NV46RkpFrl4GHQTUdrqZKz9AGMG9CDfJ txQmwXUN+nfnvxPZLSCnfYKaQyscJBCraG+iq93XZNUc7s2xOmFAcX5qpCV432njZWPx lTbjRWT5sUPb9jcELjcNVqrJrjQcRpsZBFe/TlHqbkpTVN0COntDplwOgxyZTxqKWRk4 0GFhXI53kdOgCNunAvUuzoDsQ/y8WzxRE05+F8OaY7b0Q++cd6UtYPhfP/LAd09n0ZvD l0Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aTA8uZjHYmU6mFrJRdjj2PyQx8+QjT2oIRRXCztOqnU=; b=jUv8wzz1lse9VggRs1wifnO84VUglr+hDSI8eT/BPTzocDCICjRbxIu4/1NLfX/DX+ n/U/R7/BoUil++UFhDCvhz5fy6cFX191Iv0QqX0U1uTQ6ZkFpqXXSdMbZstOPB02lEx1 nWm9Ag/ii1yjCL6OIXjkln9ybIfvIVJmR4jUWf62w7h8u3HjRf/JtlPqfgK0OHmBIzCJ VJblhFh3HqbhjuIR600zJlN4bzOSjPNLBTOyzN72nVFCJaDXIZsH4Pgm5K/It5Z8PuuW UwTAU/AFDOJDxjSTF8g/OiXO7Is4AKWx4X0VybQ9ATt+NyxI68NnyFB61abE1sKNlujJ kg9g== X-Gm-Message-State: APjAAAW83KR1eILD8az+tYLwdxS5gP+uYInCBl6ADWeVWgLpCfglSSQG sWbb3X1azmFy2UM1XghsWX5yHlZI X-Google-Smtp-Source: APXvYqw8wY4K5ssfTDynsXJ50ZTXJgSWH2Rov84mVJDDE5wGXn6fk42I6HhADFNSM/yAIFM7QOgmOw== X-Received: by 2002:a62:7648:: with SMTP id r69mr18808222pfc.114.1553944877270; Sat, 30 Mar 2019 04:21:17 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id x9sm8279618pfn.60.2019.03.30.04.21.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:16 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:12 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 10/31] sha1-name.c: remove the_repo from sort_ambiguous() Date: Sat, 30 Mar 2019 18:19:06 +0700 Message-Id: <20190330111927.18645-11-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 15a1107998..7558ce51a3 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -383,10 +383,11 @@ static int collect_ambiguous(const struct object_id *oid, void *data) return 0; } +static struct repository *sort_ambiguous_repo; static int sort_ambiguous(const void *a, const void *b) { - int a_type = oid_object_info(the_repository, a, NULL); - int b_type = oid_object_info(the_repository, b, NULL); + int a_type = oid_object_info(sort_ambiguous_repo, a, NULL); + int b_type = oid_object_info(sort_ambiguous_repo, b, NULL); int a_type_sort; int b_type_sort; @@ -411,6 +412,14 @@ static int sort_ambiguous(const void *a, const void *b) return a_type_sort > b_type_sort ? 1 : -1; } +static void sort_ambiguous_oid_array(struct repository *r, struct oid_array *a) +{ + /* mutex will be needed if this code is to be made thread safe */ + sort_ambiguous_repo = r; + QSORT(a->oid, a->nr, sort_ambiguous); + sort_ambiguous_repo = NULL; +} + static enum get_oid_result get_short_oid(const char *name, int len, struct object_id *oid, unsigned flags) @@ -458,7 +467,7 @@ static enum get_oid_result get_short_oid(const char *name, int len, advise(_("The candidates are:")); for_each_abbrev(ds.hex_pfx, collect_ambiguous, &collect); - QSORT(collect.oid, collect.nr, sort_ambiguous); + sort_ambiguous_oid_array(the_repository, &collect); if (oid_array_for_each(&collect, show_ambiguous_object, &ds)) BUG("show_ambiguous_object shouldn't return non-zero"); From patchwork Sat Mar 30 11:19: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: 10878333 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 65068139A for ; Sat, 30 Mar 2019 11:21:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 508F328FEB for ; Sat, 30 Mar 2019 11:21:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 44F022900A; Sat, 30 Mar 2019 11:21: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 3A61E28FEB for ; Sat, 30 Mar 2019 11:21:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730793AbfC3LVX (ORCPT ); Sat, 30 Mar 2019 07:21:23 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:42783 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730782AbfC3LVW (ORCPT ); Sat, 30 Mar 2019 07:21:22 -0400 Received: by mail-pg1-f193.google.com with SMTP id p6so2421236pgh.9 for ; Sat, 30 Mar 2019 04:21:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=0Sww8ndWyCxak9+iI+JOYHneVIA0yT5/XJ9VtPjuYpA=; b=be4uwt3HWsIAfqR924n/Axp+ddP/OaAac9/s1xcAiOlawhazJ300NUXhYFlGG+6Fh2 xRMxMIP7p9Rb7VCBqSsoZeZarPF63WUad4bfR1rNQ3xVHymHw04bOIaRos/8YyG68Q0k MzIfqiqMqmQUQ4a9g2jIrd+WPkkTXXuM7dBzh9/JUrNjxr9jTeoq1GHOxq1t2Yl330VY LcqsDKOEhFUp3MFZeaj639k9EYarlZSYR2PyxmwHJpv1hfvmvLCMUWY/piKrcCsArZpI pvvNsgWdD0tu2s7C0BV4WiebUb9zgMzekIccIg29gPIWlmrZ0CdODQudTJ/EcVswTUcV n4LQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=0Sww8ndWyCxak9+iI+JOYHneVIA0yT5/XJ9VtPjuYpA=; b=KHiOGwsJ6vO07OB0iXC68ncP0pJD6OpU0/fMgV5PZahvkMugFldFrYsRNRMsOGYSAw AFfOZ16sLzx1aSCd7jvO6COFyEP1AK1bWduIdAA9wyFTt2Y0L5fyw++PqYL+Zs/ukaiq en4Mk76/jB7sF9H7dPsVSJ7vNgLZjj5VOyt+v38yIEQ9kSGMaPHmbGneVJdO6dwKJuEQ yyse5xS5Wghns6VR1pq08iFfF2nvRBAb822bMV3colqc64gDbCEj75a+k95/k4iXiCf/ 51sLo5MYJyMUkk7xumGWh0HPAjT69LK651QyLfMlhZP9sP90d4gKO1Ti2qiBzUFJKOgE nmzw== X-Gm-Message-State: APjAAAUTIljtBoUZPadQObGgSkEq+SbsZIZRHVOpptG6hTIZ3+/MWoTJ EjSu3rwZBDPXTl93Jc/Nn/VUJk8X X-Google-Smtp-Source: APXvYqy0fj9smEkry1DJrQakEN/Acckzo7ZAZPtG/x6wgRZKuKd1sPlDjmFNq7z5+ANA5kB7puhnSg== X-Received: by 2002:a65:410a:: with SMTP id w10mr50377298pgp.206.1553944882192; Sat, 30 Mar 2019 04:21:22 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id c18sm16771772pfc.0.2019.03.30.04.21.19 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:21 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:17 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 11/31] sha1-name.c: remove the_repo from find_abbrev_len_packed() Date: Sat, 30 Mar 2019 18:19:07 +0700 Message-Id: <20190330111927.18645-12-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 7558ce51a3..b9381aaba6 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -514,6 +514,7 @@ struct min_abbrev_data { unsigned int init_len; unsigned int cur_len; char *hex; + struct repository *repo; const struct object_id *oid; }; @@ -619,9 +620,9 @@ static void find_abbrev_len_packed(struct min_abbrev_data *mad) struct multi_pack_index *m; struct packed_git *p; - for (m = get_multi_pack_index(the_repository); m; m = m->next) + for (m = get_multi_pack_index(mad->repo); m; m = m->next) find_abbrev_len_for_midx(m, mad); - for (p = get_packed_git(the_repository); p; p = p->next) + for (p = get_packed_git(mad->repo); p; p = p->next) find_abbrev_len_for_pack(p, mad); } @@ -658,6 +659,7 @@ int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len) if (len == hexsz || !len) return hexsz; + mad.repo = the_repository; mad.init_len = len; mad.cur_len = len; mad.hex = hex; From patchwork Sat Mar 30 11:19: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: 10878335 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 D3B661575 for ; Sat, 30 Mar 2019 11:21:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C02A128FEB for ; Sat, 30 Mar 2019 11:21:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B48B12900A; Sat, 30 Mar 2019 11:21: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 4FBFE28FEB for ; Sat, 30 Mar 2019 11:21:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730795AbfC3LV2 (ORCPT ); Sat, 30 Mar 2019 07:21:28 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:43506 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730591AbfC3LV2 (ORCPT ); Sat, 30 Mar 2019 07:21:28 -0400 Received: by mail-pf1-f193.google.com with SMTP id c8so2247143pfd.10 for ; Sat, 30 Mar 2019 04:21:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Z3tl6C17iYwwBOSBKh5AtgHHBV5w/wvyG2a5No1/lCw=; b=E/8aWgWsKpuYPa3XyJouGjx2ZMCDEt7JWWKSplQ6vOiwANVb0cBZdKLK2p5bl98ANB KOxYdKRaXcUoV4VPHS6X5j79764uy2mG17NNUEVhQLVcBgSbmkk0v7TRpKsysNXe1zRU La0Q8+E419Jl8/gKTBfOxOHVX2VeNH31sN4MQ7U2lPv6KvYsLRtvEQyCciTxMtK41qri XhazFCpjdSAKnSu36jYF5cyOY0w3VMv/E7+Jb6WMxIomSH9XSxnkVmBjk62rF0LXF2WK xK05bCOFi7qhoGNWsE1fSI2eaFdF8lRWmPdnrBQjbkJ/LPlutoVpVO13LWIhBoIG3SXC JReg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Z3tl6C17iYwwBOSBKh5AtgHHBV5w/wvyG2a5No1/lCw=; b=ey8dbEPvv433OA12M45pqfn2Z48+3rdnBfn1Pl16Jj5oEJtlwyZRbt1XBTxNjIQURE DknzQkOrw/F2l/gusqLG+PcvBQetlApSkgEcZACmB919NlXfoekX5dJu8g7c7BloMjwB QdyUWvq6+RzowW+fvotJdFiUeBnrTRIExKgRkSnhNAGsiAITHMwBTvbHtaNN4kIl6kfy wIxKnWtCc5E4H+64dJLBxBmvkcp7YzGM/dPW6XsMRTku7C93EM2sC1/4hjGNYkJ7TfnT CCgkNTMF1MlB4M/MGknVnsq8fAoDd4YJHB1PSFjGWvTQWOOkEggHd+P4Jome05pdYg0D O0dQ== X-Gm-Message-State: APjAAAWzEmUIeDiFh/7B6X0RbVO0Hej5xP833g7zT9sQfK82sHzaunBc rEiDS6uI4dRXWyieOv5M+3yQ65rY X-Google-Smtp-Source: APXvYqxh/d1ylFLZiQ2jvttwj0pVz9IS3XYTDttFhCmYwE7I/OPIGsS6aCUmdVJeNWNsSoj9yleUCQ== X-Received: by 2002:a63:f541:: with SMTP id e1mr50221458pgk.388.1553944887192; Sat, 30 Mar 2019 04:21:27 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id d38sm5646106pgd.40.2019.03.30.04.21.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:26 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:22 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 12/31] sha1-name.c: add repo_find_unique_abbrev_r() Date: Sat, 30 Mar 2019 18:19:08 +0700 Message-Id: <20190330111927.18645-13-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 6 ++++-- sha1-name.c | 15 +++++++++------ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/cache.h b/cache.h index fcb24b5781..4f8ebb0a67 100644 --- a/cache.h +++ b/cache.h @@ -1045,8 +1045,10 @@ extern void check_repository_format(void); * Note that while this version avoids the static buffer, it is not fully * reentrant, as it calls into other non-reentrant git code. */ -extern const char *find_unique_abbrev(const struct object_id *oid, int len); -extern int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len); +const char *repo_find_unique_abbrev(struct repository *r, const struct object_id *oid, int len); +#define find_unique_abbrev(oid, len) repo_find_unique_abbrev(the_repository, oid, len) +int repo_find_unique_abbrev_r(struct repository *r, char *hex, const struct object_id *oid, int len); +#define find_unique_abbrev_r(hex, oid, len) repo_find_unique_abbrev_r(the_repository, hex, oid, len) extern const unsigned char null_sha1[GIT_MAX_RAWSZ]; extern const struct object_id null_oid; diff --git a/sha1-name.c b/sha1-name.c index b9381aaba6..9b57787b76 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -626,15 +626,16 @@ static void find_abbrev_len_packed(struct min_abbrev_data *mad) find_abbrev_len_for_pack(p, mad); } -int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len) +int repo_find_unique_abbrev_r(struct repository *r, char *hex, + const struct object_id *oid, int len) { struct disambiguate_state ds; struct min_abbrev_data mad; struct object_id oid_ret; - const unsigned hexsz = the_hash_algo->hexsz; + const unsigned hexsz = r->hash_algo->hexsz; if (len < 0) { - unsigned long count = approximate_object_count(); + unsigned long count = repo_approximate_object_count(r); /* * Add one because the MSB only tells us the highest bit set, * not including the value of all the _other_ bits (so "15" @@ -659,7 +660,7 @@ int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len) if (len == hexsz || !len) return hexsz; - mad.repo = the_repository; + mad.repo = r; mad.init_len = len; mad.cur_len = len; mad.hex = hex; @@ -681,13 +682,15 @@ int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len) return mad.cur_len; } -const char *find_unique_abbrev(const struct object_id *oid, int len) +const char *repo_find_unique_abbrev(struct repository *r, + const struct object_id *oid, + int len) { static int bufno; static char hexbuffer[4][GIT_MAX_HEXSZ + 1]; char *hex = hexbuffer[bufno]; bufno = (bufno + 1) % ARRAY_SIZE(hexbuffer); - find_unique_abbrev_r(hex, oid, len); + repo_find_unique_abbrev_r(r, hex, oid, len); return hex; } From patchwork Sat Mar 30 11:19: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: 10878337 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 3326C139A for ; Sat, 30 Mar 2019 11:21:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1D0E228FEB for ; Sat, 30 Mar 2019 11:21:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1068E2900A; Sat, 30 Mar 2019 11:21:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3C91928FEB for ; Sat, 30 Mar 2019 11:21:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730798AbfC3LVe (ORCPT ); Sat, 30 Mar 2019 07:21:34 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:45648 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730796AbfC3LVd (ORCPT ); Sat, 30 Mar 2019 07:21:33 -0400 Received: by mail-pl1-f196.google.com with SMTP id bf11so2210442plb.12 for ; Sat, 30 Mar 2019 04:21:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Zkk+sKvuQ3qNLst7Ye1UEl3IZh2DQklA0UBtoCRshnY=; b=FHt/9dv5aYRrEe/DzjT1mw8paF8Inoe/Klv9V4osYrYBd/sM57bE9fI2oR0n4MI8RX //LvLH6LhTU/dzkh6oAJGElxM+ng9qmf+BFBpdaVBhPPeSxfl05/1y1QGAAj09CAbLmU vT8LycoI//QrL9FuFYr/dnLsHcNb60yIlZEls4aDZBeK60/8oTVsomexoJFaKPmHqchU b4BNnI1E7trFaCVrMMsLCcOjcilQ2bku4R/oea5A8zMxYaSO4K/ePsL5wJC97f8EGmxF BicfcLSS3axvZGQSZeBj9cXiOZOtNB3PfqWJn+8EPo1s4XUseNEwOYZGbRoUgaaz0XNX cIgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Zkk+sKvuQ3qNLst7Ye1UEl3IZh2DQklA0UBtoCRshnY=; b=ckvD78c89AdZiVpYgSkgw8ibMikdT08bsy5B3+njaHSmCZOM80h3zJfIS0n5f1zTsJ SjMGo6bUuTu/fmJDFXX8Dy+QTYPJCc0uDI1XCFifDGGCJACTGBiTDs6NsX/SHGH0bagD cJwcJZWzickBM2QYdmQA6FQB+pG9RxxLXGjefcksuf1Hk94gRkz2hEO4bZvW2cAPFCf/ i48U6naG64z4ks58VKf30lHe8YXGvPA3NHjqZum8+Gjm3m2vc1NN1GyOo5K3aZm+fHtF DcphWOiGAzUFH4U0AgXNh5viKh82BzuaW1DF0LHykSi1ks50xBqsG/RXbP7o+o07gyWG jdeQ== X-Gm-Message-State: APjAAAW3Q0YYSzJoBP32h5rzkj8ZbK2W+5EDVyy1UgTCuP0xbSJEbBmB Gg3JGL6qTepEqJ5wlsCb+53rEHzF X-Google-Smtp-Source: APXvYqzV3yABX4UQ0JJCfFLEQal44311ImdxCpXnZMtyQw8ChrA+68enc/PcvO/B5PmPg/ImpRGKlQ== X-Received: by 2002:a17:902:7c0f:: with SMTP id x15mr15770822pll.338.1553944892903; Sat, 30 Mar 2019 04:21:32 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id p81sm9093424pfi.186.2019.03.30.04.21.29 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:31 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:27 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 13/31] sha1-name.c: store and use repo in struct disambiguate_state Date: Sat, 30 Mar 2019 18:19:09 +0700 Message-Id: <20190330111927.18645-14-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 95 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 36 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 9b57787b76..a75992eb54 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -17,13 +17,14 @@ static int get_oid_oneline(const char *, struct object_id *, struct commit_list *); -typedef int (*disambiguate_hint_fn)(const struct object_id *, void *); +typedef int (*disambiguate_hint_fn)(struct repository *, const struct object_id *, void *); struct disambiguate_state { int len; /* length of prefix in hex chars */ char hex_pfx[GIT_MAX_HEXSZ + 1]; struct object_id bin_pfx; + struct repository *repo; disambiguate_hint_fn fn; void *cb_data; struct object_id candidate; @@ -38,7 +39,7 @@ struct disambiguate_state { static void update_candidates(struct disambiguate_state *ds, const struct object_id *current) { if (ds->always_call_fn) { - ds->ambiguous = ds->fn(current, ds->cb_data) ? 1 : 0; + ds->ambiguous = ds->fn(ds->repo, current, ds->cb_data) ? 1 : 0; return; } if (!ds->candidate_exists) { @@ -58,7 +59,7 @@ static void update_candidates(struct disambiguate_state *ds, const struct object } if (!ds->candidate_checked) { - ds->candidate_ok = ds->fn(&ds->candidate, ds->cb_data); + ds->candidate_ok = ds->fn(ds->repo, &ds->candidate, ds->cb_data); ds->disambiguate_fn_used = 1; ds->candidate_checked = 1; } @@ -71,7 +72,7 @@ static void update_candidates(struct disambiguate_state *ds, const struct object } /* if we reach this point, we know ds->candidate satisfies fn */ - if (ds->fn(current, ds->cb_data)) { + if (ds->fn(ds->repo, current, ds->cb_data)) { /* * if both current and candidate satisfy fn, we cannot * disambiguate. @@ -89,9 +90,7 @@ static void find_short_object_filename(struct disambiguate_state *ds) { struct object_directory *odb; - for (odb = the_repository->objects->odb; - odb && !ds->ambiguous; - odb = odb->next) { + for (odb = ds->repo->objects->odb; odb && !ds->ambiguous; odb = odb->next) { int pos; struct oid_array *loose_objects; @@ -182,10 +181,10 @@ static void find_short_packed_object(struct disambiguate_state *ds) struct multi_pack_index *m; struct packed_git *p; - for (m = get_multi_pack_index(the_repository); m && !ds->ambiguous; + for (m = get_multi_pack_index(ds->repo); m && !ds->ambiguous; m = m->next) unique_in_midx(m, ds); - for (p = get_packed_git(the_repository); p && !ds->ambiguous; + for (p = get_packed_git(ds->repo); p && !ds->ambiguous; p = p->next) unique_in_pack(p, ds); } @@ -215,7 +214,7 @@ static int finish_object_disambiguation(struct disambiguate_state *ds, * same repository! */ ds->candidate_ok = (!ds->disambiguate_fn_used || - ds->fn(&ds->candidate, ds->cb_data)); + ds->fn(ds->repo, &ds->candidate, ds->cb_data)); if (!ds->candidate_ok) return SHORT_NAME_AMBIGUOUS; @@ -224,59 +223,67 @@ static int finish_object_disambiguation(struct disambiguate_state *ds, return 0; } -static int disambiguate_commit_only(const struct object_id *oid, void *cb_data_unused) +static int disambiguate_commit_only(struct repository *r, + const struct object_id *oid, + void *cb_data_unused) { - int kind = oid_object_info(the_repository, oid, NULL); + int kind = oid_object_info(r, oid, NULL); return kind == OBJ_COMMIT; } -static int disambiguate_committish_only(const struct object_id *oid, void *cb_data_unused) +static int disambiguate_committish_only(struct repository *r, + const struct object_id *oid, + void *cb_data_unused) { struct object *obj; int kind; - kind = oid_object_info(the_repository, oid, NULL); + kind = oid_object_info(r, oid, NULL); if (kind == OBJ_COMMIT) return 1; if (kind != OBJ_TAG) return 0; /* We need to do this the hard way... */ - obj = deref_tag(the_repository, parse_object(the_repository, oid), - NULL, 0); + obj = deref_tag(r, parse_object(r, oid), NULL, 0); if (obj && obj->type == OBJ_COMMIT) return 1; return 0; } -static int disambiguate_tree_only(const struct object_id *oid, void *cb_data_unused) +static int disambiguate_tree_only(struct repository *r, + const struct object_id *oid, + void *cb_data_unused) { - int kind = oid_object_info(the_repository, oid, NULL); + int kind = oid_object_info(r, oid, NULL); return kind == OBJ_TREE; } -static int disambiguate_treeish_only(const struct object_id *oid, void *cb_data_unused) +static int disambiguate_treeish_only(struct repository *r, + const struct object_id *oid, + void *cb_data_unused) { struct object *obj; int kind; - kind = oid_object_info(the_repository, oid, NULL); + kind = oid_object_info(r, oid, NULL); if (kind == OBJ_TREE || kind == OBJ_COMMIT) return 1; if (kind != OBJ_TAG) return 0; /* We need to do this the hard way... */ - obj = deref_tag(the_repository, parse_object(the_repository, oid), - NULL, 0); + obj = deref_tag(r, parse_object(r, oid), NULL, 0); if (obj && (obj->type == OBJ_TREE || obj->type == OBJ_COMMIT)) return 1; return 0; } -static int disambiguate_blob_only(const struct object_id *oid, void *cb_data_unused) +static int disambiguate_blob_only(struct repository *r, + const struct object_id *oid, + void *cb_data_unused) { - int kind = oid_object_info(the_repository, oid, NULL); + int kind = oid_object_info(r, oid, NULL); return kind == OBJ_BLOB; } @@ -310,7 +317,8 @@ int set_disambiguate_hint_config(const char *var, const char *value) return error("unknown hint type for '%s': %s", var, value); } -static int init_object_disambiguation(const char *name, int len, +static int init_object_disambiguation(struct repository *r, + const char *name, int len, struct disambiguate_state *ds) { int i; @@ -341,7 +349,8 @@ static int init_object_disambiguation(const char *name, int len, ds->len = len; ds->hex_pfx[len] = '\0'; - prepare_alt_odb(the_repository); + ds->repo = r; + prepare_alt_odb(r); return 0; } @@ -351,25 +360,25 @@ static int show_ambiguous_object(const struct object_id *oid, void *data) struct strbuf desc = STRBUF_INIT; int type; - if (ds->fn && !ds->fn(oid, ds->cb_data)) + if (ds->fn && !ds->fn(ds->repo, oid, ds->cb_data)) return 0; - type = oid_object_info(the_repository, oid, NULL); + type = oid_object_info(ds->repo, oid, NULL); if (type == OBJ_COMMIT) { - struct commit *commit = lookup_commit(the_repository, oid); + struct commit *commit = lookup_commit(ds->repo, oid); if (commit) { struct pretty_print_context pp = {0}; pp.date_mode.type = DATE_SHORT; format_commit_message(commit, " %ad - %s", &desc, &pp); } } else if (type == OBJ_TAG) { - struct tag *tag = lookup_tag(the_repository, oid); + struct tag *tag = lookup_tag(ds->repo, oid); if (!parse_tag(tag) && tag->tag) strbuf_addf(&desc, " %s", tag->tag); } advise(" %s %s%s", - find_unique_abbrev(oid, DEFAULT_ABBREV), + repo_find_unique_abbrev(ds->repo, oid, DEFAULT_ABBREV), type_name(type) ? type_name(type) : "unknown type", desc.buf); @@ -383,6 +392,13 @@ static int collect_ambiguous(const struct object_id *oid, void *data) return 0; } +static int repo_collect_ambiguous(struct repository *r, + const struct object_id *oid, + void *data) +{ + return collect_ambiguous(oid, data); +} + static struct repository *sort_ambiguous_repo; static int sort_ambiguous(const void *a, const void *b) { @@ -428,7 +444,7 @@ static enum get_oid_result get_short_oid(const char *name, int len, struct disambiguate_state ds; int quietly = !!(flags & GET_OID_QUIETLY); - if (init_object_disambiguation(name, len, &ds) < 0) + if (init_object_disambiguation(the_repository, name, len, &ds) < 0) return -1; if (HAS_MULTI_BITS(flags & GET_OID_DISAMBIGUATORS)) @@ -483,11 +499,11 @@ int for_each_abbrev(const char *prefix, each_abbrev_fn fn, void *cb_data) struct disambiguate_state ds; int ret; - if (init_object_disambiguation(prefix, strlen(prefix), &ds) < 0) + if (init_object_disambiguation(the_repository, prefix, strlen(prefix), &ds) < 0) return -1; ds.always_call_fn = 1; - ds.fn = collect_ambiguous; + ds.fn = repo_collect_ambiguous; ds.cb_data = &collect; find_short_object_filename(&ds); find_short_packed_object(&ds); @@ -543,6 +559,13 @@ static int extend_abbrev_len(const struct object_id *oid, void *cb_data) return 0; } +static int repo_extend_abbrev_len(struct repository *r, + const struct object_id *oid, + void *cb_data) +{ + return extend_abbrev_len(oid, cb_data); +} + static void find_abbrev_len_for_midx(struct multi_pack_index *m, struct min_abbrev_data *mad) { @@ -668,10 +691,10 @@ int repo_find_unique_abbrev_r(struct repository *r, char *hex, find_abbrev_len_packed(&mad); - if (init_object_disambiguation(hex, mad.cur_len, &ds) < 0) + if (init_object_disambiguation(r, hex, mad.cur_len, &ds) < 0) return -1; - ds.fn = extend_abbrev_len; + ds.fn = repo_extend_abbrev_len; ds.always_call_fn = 1; ds.cb_data = (void *)&mad; From patchwork Sat Mar 30 11:19: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: 10878339 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 797D2139A for ; Sat, 30 Mar 2019 11:21:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6595928FEB for ; Sat, 30 Mar 2019 11:21:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 59DFB2900A; Sat, 30 Mar 2019 11:21:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0748928FEB for ; Sat, 30 Mar 2019 11:21:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730800AbfC3LVi (ORCPT ); Sat, 30 Mar 2019 07:21:38 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:36689 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730729AbfC3LVi (ORCPT ); Sat, 30 Mar 2019 07:21:38 -0400 Received: by mail-pg1-f195.google.com with SMTP id 85so2437646pgc.3 for ; Sat, 30 Mar 2019 04:21:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YLC/zHqD4nZfCBSwlO+lsrWxWfpYZdPdK2PMT6BBWgM=; b=RSxayYB3JUv7kVzoQxUHxQ9NIUCoMNFeRH4zKPXRy8aaeeoGgZgBTCdSBC2Rh5znb3 oi7Z9yTiNAw9pmk5cUwoA/LNx7swZdSANlwDy28wfzrAez5GvbFC9RZ70kKvwGqxOIec 5uVgb/1F/D7rGdL3dp/3SVe9+j53ox9EqL6wN0i1WfublSx76W93ZVWuxd51/Nv2canM OR+CJ9OCCdfdPbHVvy5VHFSdqeaZ5OQg9EB3silyweSmEDFGhxz0gG7QlmyQaeC85aBj vQLjFctfzaT0yLLJTmCiLCnHCr+ukeN6XPQxN4DNq0tqocgyprM+Lh0jzzilYuRjFRB6 prhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YLC/zHqD4nZfCBSwlO+lsrWxWfpYZdPdK2PMT6BBWgM=; b=WF2uHdlmKULbCBomyfK3pexfNRS1Rlgp07mEVcrN9MRGJlHg2zBhIdRyEB9voTth7/ C2NHgRXWi1vviIpn9FWhGF6Hv1KryehP/dE/Bbq5WPOdLy/itTSk4+Oh2xdzz9Wll78a cwIihPwUUybzvmD2PkSducdJMv0bdIbEu0LyRODTEr3gL2RImJyZdXz4lnKPSwraqp4C wdf1y5TFB2OFDweSm9Z2I6l2JdadIpltPKoNrkvwe6ek4DYAZZCbMgFXAgmViWHfSlY4 36z3PzVeYZxIwSW3Z1qE5T4uCb/kaQQC0SsBeoFJvyJdZkdVnvAugNxpbrcISXjTPloh zVAA== X-Gm-Message-State: APjAAAXta2OYUKUyN9jv5BbmhUl7t4UGFw08r8Drg89jWRQ6zX0oR/iI so0DyS/vdZMwDnr4M8Mj2sMVfYjP X-Google-Smtp-Source: APXvYqxkM2dw9cwkCXp0OROzIHVaOqN4pLnFqLucFEITu6rQNZFfGoM9KQzCjLz+OzoOHGEDanDW4w== X-Received: by 2002:a62:55c7:: with SMTP id j190mr50850311pfb.226.1553944897840; Sat, 30 Mar 2019 04:21:37 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id i24sm6904862pfo.85.2019.03.30.04.21.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:37 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:33 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 14/31] sha1-name.c: add repo_for_each_abbrev() Date: Sat, 30 Mar 2019 18:19:10 +0700 Message-Id: <20190330111927.18645-15-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 3 ++- sha1-name.c | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cache.h b/cache.h index 4f8ebb0a67..0cb95c0d4f 100644 --- a/cache.h +++ b/cache.h @@ -1392,7 +1392,8 @@ extern enum get_oid_result get_oid_with_context(struct repository *repo, const c struct object_context *oc); typedef int each_abbrev_fn(const struct object_id *oid, void *); -extern int for_each_abbrev(const char *prefix, each_abbrev_fn, void *); +int repo_for_each_abbrev(struct repository *r, const char *prefix, each_abbrev_fn, void *); +#define for_each_abbrev(prefix, fn, data) repo_for_each_abbrev(the_repository, prefix, fn, data) extern int set_disambiguate_hint_config(const char *var, const char *value); diff --git a/sha1-name.c b/sha1-name.c index a75992eb54..cdcf84b826 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -493,13 +493,14 @@ static enum get_oid_result get_short_oid(const char *name, int len, return status; } -int for_each_abbrev(const char *prefix, each_abbrev_fn fn, void *cb_data) +int repo_for_each_abbrev(struct repository *r, const char *prefix, + each_abbrev_fn fn, void *cb_data) { struct oid_array collect = OID_ARRAY_INIT; struct disambiguate_state ds; int ret; - if (init_object_disambiguation(the_repository, prefix, strlen(prefix), &ds) < 0) + if (init_object_disambiguation(r, prefix, strlen(prefix), &ds) < 0) return -1; ds.always_call_fn = 1; From patchwork Sat Mar 30 11:19: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: 10878341 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 99280139A for ; Sat, 30 Mar 2019 11:21:45 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8582C28FEB for ; Sat, 30 Mar 2019 11:21:45 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 79CE12900A; Sat, 30 Mar 2019 11:21:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2103628FEB for ; Sat, 30 Mar 2019 11:21:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730729AbfC3LVo (ORCPT ); Sat, 30 Mar 2019 07:21:44 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:34258 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730591AbfC3LVn (ORCPT ); Sat, 30 Mar 2019 07:21:43 -0400 Received: by mail-pg1-f193.google.com with SMTP id v12so2444412pgq.1 for ; Sat, 30 Mar 2019 04:21:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=mk/AggNO03fk2G0u4xF9XXptVhBAQp2iIFzsp49nKTY=; b=NT7cxy1Lnzz5L+EZenc9f2Ha5dxCIHP7sDjzczTEx4PLyzR/80j0lQtLSevkVevZ0Y 7QtbRixarQYTvoyjzTdbmovuVaQjowFF5vNgH1BfCycOocqQo4U2Bdi86ObU9wc8IopD P34o1Sxfax9+9gMzD/NNos4SoKiRfQlDmpIqLkRfTi9YN2puF/7Ej/CjUmx+M7SiFRzt Q992lqarDeg05L/3Fq8dPQ+CaWdC00dRtkFBQFWzlFqnrugtDtSsC5H+lziJieODM9dL 3rvrFQrWaW3FOhLYWw20ibsMtRZxmIxAQKEkyOjGYJueUTZchjXs5J9sCa7QfZpPxvY8 Lx5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=mk/AggNO03fk2G0u4xF9XXptVhBAQp2iIFzsp49nKTY=; b=fDl3uz9++2laDv7goxukHCQ+F2wqNyOwN2RRiiqi6GEg+CpvCDqSUWOoxgiUDOLd1i pOnMow7Kd97WGboQoyHom0AAeMqGsJ6yDNx7PLjGn5JWeFgf03Xelmo0dpJUXxXDn+S8 S/rEEXFphejeX5c6/wCzLC+dtoZbeEyQ++PMd0pXLMWiad7xDkkYKfSSoPH4H1BPzQyS J3e1vV/AgosITzj7MEiPMrVcc9NZkWY4/XmmCXYrxRA3S8UjIIJvThIx8RcvFcAtJDCJ F3//xXY0R9GC3iTU7voBAQEEFowVcW/w1RA4Q931PGWHr99zomIFUOaX5ttrJCg4N0Lq bA+g== X-Gm-Message-State: APjAAAXBzOAEwi9UexlWNLc5iK6PV2HjPGIfrKVlikX1cGB9csK+NF+y kcng3JdNExqsxoNVbwxdOkBRdikd X-Google-Smtp-Source: APXvYqyXkfem3lyxyEx5894julogs/7kwUsdRHeJJ7Ercw9pPFEU9tCMsqhqNIEDufXRAbzo+UJCXQ== X-Received: by 2002:aa7:9219:: with SMTP id 25mr53592119pfo.205.1553944902995; Sat, 30 Mar 2019 04:21:42 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id y12sm10653409pgq.64.2019.03.30.04.21.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:42 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:38 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 15/31] sha1-name.c: remove the_repo from get_short_oid() Date: Sat, 30 Mar 2019 18:19:11 +0700 Message-Id: <20190330111927.18645-16-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index cdcf84b826..2643b75b54 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -436,7 +436,8 @@ static void sort_ambiguous_oid_array(struct repository *r, struct oid_array *a) sort_ambiguous_repo = NULL; } -static enum get_oid_result get_short_oid(const char *name, int len, +static enum get_oid_result get_short_oid(struct repository *r, + const char *name, int len, struct object_id *oid, unsigned flags) { @@ -444,7 +445,7 @@ static enum get_oid_result get_short_oid(const char *name, int len, struct disambiguate_state ds; int quietly = !!(flags & GET_OID_QUIETLY); - if (init_object_disambiguation(the_repository, name, len, &ds) < 0) + if (init_object_disambiguation(r, name, len, &ds) < 0) return -1; if (HAS_MULTI_BITS(flags & GET_OID_DISAMBIGUATORS)) @@ -482,8 +483,8 @@ static enum get_oid_result get_short_oid(const char *name, int len, ds.fn = NULL; advise(_("The candidates are:")); - for_each_abbrev(ds.hex_pfx, collect_ambiguous, &collect); - sort_ambiguous_oid_array(the_repository, &collect); + repo_for_each_abbrev(r, ds.hex_pfx, collect_ambiguous, &collect); + sort_ambiguous_oid_array(r, &collect); if (oid_array_for_each(&collect, show_ambiguous_object, &ds)) BUG("show_ambiguous_object shouldn't return non-zero"); @@ -855,7 +856,8 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, if (warn_ambiguous_refs && !(flags & GET_OID_QUIETLY) && (refs_found > 1 || - !get_short_oid(str, len, &tmp_oid, GET_OID_QUIETLY))) + !get_short_oid(the_repository, + str, len, &tmp_oid, GET_OID_QUIETLY))) warning(warn_msg, len, str); if (reflog_len) { @@ -1109,7 +1111,8 @@ static int get_describe_name(const char *name, int len, struct object_id *oid) if (ch == 'g' && cp[-1] == '-') { cp++; len -= cp - name; - return get_short_oid(cp, len, oid, flags); + return get_short_oid(the_repository, + cp, len, oid, flags); } } } @@ -1163,7 +1166,7 @@ static enum get_oid_result get_oid_1(const char *name, int len, if (!ret) return FOUND; - return get_short_oid(name, len, oid, lookup_flags); + return get_short_oid(the_repository, name, len, oid, lookup_flags); } /* From patchwork Sat Mar 30 11:19: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: 10878343 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 BB3E9139A for ; Sat, 30 Mar 2019 11:21:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A741428FEB for ; Sat, 30 Mar 2019 11:21:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9BBCC2900A; Sat, 30 Mar 2019 11:21:50 +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 369AF28FEB for ; Sat, 30 Mar 2019 11:21:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730754AbfC3LVt (ORCPT ); Sat, 30 Mar 2019 07:21:49 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:46950 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730453AbfC3LVs (ORCPT ); Sat, 30 Mar 2019 07:21:48 -0400 Received: by mail-pf1-f194.google.com with SMTP id 9so2243316pfj.13 for ; Sat, 30 Mar 2019 04:21:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9UDdC6QudJc1/9WbTZNYgF9nZ77a17Sjj1O8i1ENOk8=; b=kLgvIpstaBg0haLncWI3EYQacurZl87NpiAckdmzmdeAhgKq7eMV5B9SEzWi06O0e/ Re6JLIa/YPk5UuPdngi6oJPmCzf7I9gB2i3/jz2xqc7gg0BSutnApeKSD/FimS0FdPZt mKHR6YtuBQYQW+GtBBDnC1kHYlZ2XLJRIWQ36MpNoH5DK20v0iZZ5kK0a7lutCAnUAVF 730DHwqrKr8lSo468ehCgffA/04Z8mFDEDWUfL26/5kZ2e/57yIhHIBe8CB1n+8HgPdM avDWKjFJw+sjyWQw1RRws0jhVohMFSIp0CF1oUcsZw3bflSNKGT2BweJiALza060mWYI YQvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9UDdC6QudJc1/9WbTZNYgF9nZ77a17Sjj1O8i1ENOk8=; b=dGpT7OLYfxxdcoGKbeFsHXwMRamgdelTdg9BYogg9SaiHmaQSUqlwSVc0XuQzvyGhc gI7aE42+BNgR9uvqCoh3eC1xebTmDDwVmA3af2Dv2rMeVcLOC/TxHLQO0GlbdkkShBr3 lzPZVcQLxrLXpkHB6vunoYD0WHR5a85VMHBAUHynmvLktm46q0JhiOcY7XN8WshaP4Yo qzo/uoUYdWYma9jK8ubjss/9jYxWtfk8vCAwpSXbDt2R1zecDi4xzxJz3U0mEA16LzNf 397yPBPVBqdd0xCVmopMzcICNyBgJwgDFpR5vD6mpJ2AAt+hbekCwHpj7M8aLjWRCtVo GfBA== X-Gm-Message-State: APjAAAV3pkesVV6l9EyhVSJ57UpuYyU8Q9ugIcKShgaRv55iPLXcs76g vkmfBRcqcwQe4a40oIog2FndNEIk X-Google-Smtp-Source: APXvYqwGHkXlpgbFAgK6d0brWgoHY/sX0i3G4sdimVWONx3FYcgo9PVixkma65J7gRjvwqmEcHttRg== X-Received: by 2002:a65:5b47:: with SMTP id y7mr50944733pgr.449.1553944908038; Sat, 30 Mar 2019 04:21:48 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id n75sm8208595pfb.39.2019.03.30.04.21.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:47 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:43 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 16/31] sha1-name.c: remove the_repo from interpret_nth_prior_checkout() Date: Sat, 30 Mar 2019 18:19:12 +0700 Message-Id: <20190330111927.18645-17-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 2643b75b54..af8bf5b351 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -771,7 +771,7 @@ static inline int push_mark(const char *string, int len) } static enum get_oid_result get_oid_1(const char *name, int len, struct object_id *oid, unsigned lookup_flags); -static int interpret_nth_prior_checkout(const char *name, int namelen, struct strbuf *buf); +static int interpret_nth_prior_checkout(struct repository *r, const char *name, int namelen, struct strbuf *buf); static int get_oid_basic(const char *str, int len, struct object_id *oid, unsigned int flags) @@ -835,7 +835,7 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, struct strbuf buf = STRBUF_INIT; int detached; - if (interpret_nth_prior_checkout(str, len, &buf) > 0) { + if (interpret_nth_prior_checkout(the_repository, str, len, &buf) > 0) { detached = (buf.len == the_hash_algo->hexsz && !get_oid_hex(buf.buf, oid)); strbuf_release(&buf); if (detached) @@ -1288,7 +1288,8 @@ static int grab_nth_branch_switch(struct object_id *ooid, struct object_id *noid * Parse @{-N} syntax, return the number of characters parsed * if successful; otherwise signal an error with negative value. */ -static int interpret_nth_prior_checkout(const char *name, int namelen, +static int interpret_nth_prior_checkout(struct repository *r, + const char *name, int namelen, struct strbuf *buf) { long nth; @@ -1312,12 +1313,14 @@ static int interpret_nth_prior_checkout(const char *name, int namelen, cb.remaining = nth; strbuf_init(&cb.buf, 20); - retval = 0; - if (0 < for_each_reflog_ent_reverse("HEAD", grab_nth_branch_switch, &cb)) { + retval = refs_for_each_reflog_ent_reverse(get_main_ref_store(r), + "HEAD", grab_nth_branch_switch, &cb); + if (0 < retval) { strbuf_reset(buf); strbuf_addbuf(buf, &cb.buf); retval = brace - name + 1; - } + } else + retval = 0; strbuf_release(&cb.buf); return retval; @@ -1484,7 +1487,7 @@ int repo_interpret_branch_name(struct repository *r, namelen = strlen(name); if (!allowed || (allowed & INTERPRET_BRANCH_LOCAL)) { - len = interpret_nth_prior_checkout(name, namelen, buf); + len = interpret_nth_prior_checkout(the_repository, name, namelen, buf); if (!len) { return len; /* syntax Ok, not enough switches */ } else if (len > 0) { From patchwork Sat Mar 30 11:19: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: 10878345 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 837FE13B5 for ; Sat, 30 Mar 2019 11:21:55 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6FC4828FEB for ; Sat, 30 Mar 2019 11:21:55 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 642A32900A; Sat, 30 Mar 2019 11:21:55 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0FD2A28FEB for ; Sat, 30 Mar 2019 11:21:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730801AbfC3LVy (ORCPT ); Sat, 30 Mar 2019 07:21:54 -0400 Received: from mail-pl1-f194.google.com ([209.85.214.194]:39266 "EHLO mail-pl1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730708AbfC3LVx (ORCPT ); Sat, 30 Mar 2019 07:21:53 -0400 Received: by mail-pl1-f194.google.com with SMTP id b65so2222031plb.6 for ; Sat, 30 Mar 2019 04:21:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=zgl4uDGQElqhR/nr1PaRxHFgma6jHwWws1kyZLI+8nw=; b=STuaPe9zGu6FgyrtUpwO/2UeYBAJsDkGU4qLHGDdMOpSqYYZS0OFJfodiW7Lx40Zma sRe9tqjMVww402X5AoeEriaFoqLFrtrkmE5k29Ykdh42t+u0dLB5Jhs/wic5h/Abwd/5 u1o4Ah0Q3v2TmQ1DIW2POdBXF4uLscGXmno+Yl8G6ssq36XKuPvV04Q6k2A6McGjDplx rSxlsXuw7DFiLMoCddQQ9AztsQGYWpHhglQytD3j9oRRWO4kQ/YsbUOKjVIcuGnaUxFJ gg08Q1DdIjEG0aUsjitzHDZggvSCJaX47WxnCKqYSN3vED8g9NUZj19kBURqnypt0oKv i3Kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zgl4uDGQElqhR/nr1PaRxHFgma6jHwWws1kyZLI+8nw=; b=jjXPsqZ8362Ui8ZUJFCGfY+jZtH6FebV79xu8qpneFKa1umvm8TuZ2+RWqpD1eUBLp EIELhQpRG0LIXUoVU6ZW6HNn+TggCKqhjsMMvtcLLOeOglWQ4WlNWBNmb6HEWQBklB9t /W8uYJPakeCNuNuODC7UuEMWc6DlRrpr0i17g14Zb251JDS8VkqzeG/7nWXnhxg5V4v9 qveRMoyO9VmKw+2oEsxhEIMGGXvTdqcrNJfwVawWlhIzEOgUqpgryj4vGr6SYqvnNuhc d/BAzdBrUgXlUrrqIgF7qK4YgiSrlbLpCKTPvYIFrIHxbeMYZwEouNF6ZyIqOCQpwnrl rSSg== X-Gm-Message-State: APjAAAUPFBPvwuUCWGm3FleGZ4W6xayTtFxRUnvtHQtSyX+FnD+rWJpL KZlcsuxhP/UfiUalHepgfhXGvjUb X-Google-Smtp-Source: APXvYqwA+cRvwz5VieJi7j5VbNoVChy+9k2XLjZfTJ2AnLOUMews27M19bi+ZajoHIvvE8cc4mUqWw== X-Received: by 2002:a17:902:9a83:: with SMTP id w3mr53989540plp.137.1553944912961; Sat, 30 Mar 2019 04:21:52 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id e2sm7460948pfa.64.2019.03.30.04.21.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:52 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:48 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 17/31] sha1-name.c: remove the_repo from interpret_branch_mark() Date: Sat, 30 Mar 2019 18:19:13 +0700 Message-Id: <20190330111927.18645-18-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index af8bf5b351..7d9512ac44 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1412,9 +1412,9 @@ static int reinterpret(const char *name, int namelen, int len, return ret - used + len; } -static void set_shortened_ref(struct strbuf *buf, const char *ref) +static void set_shortened_ref(struct repository *r, struct strbuf *buf, const char *ref) { - char *s = shorten_unambiguous_ref(ref, 0); + char *s = refs_shorten_unambiguous_ref(get_main_ref_store(r), ref, 0); strbuf_reset(buf); strbuf_addstr(buf, s); free(s); @@ -1435,7 +1435,8 @@ static int branch_interpret_allowed(const char *refname, unsigned allowed) return 0; } -static int interpret_branch_mark(const char *name, int namelen, +static int interpret_branch_mark(struct repository *r, + const char *name, int namelen, int at, struct strbuf *buf, int (*get_mark)(const char *, int), const char *(*get_data)(struct branch *, @@ -1468,7 +1469,7 @@ static int interpret_branch_mark(const char *name, int namelen, if (!branch_interpret_allowed(value, allowed)) return -1; - set_shortened_ref(buf, value); + set_shortened_ref(r, buf, value); return len + at; } @@ -1509,13 +1510,13 @@ int repo_interpret_branch_name(struct repository *r, allowed); } - len = interpret_branch_mark(name, namelen, at - name, buf, + len = interpret_branch_mark(the_repository, name, namelen, at - name, buf, upstream_mark, branch_get_upstream, allowed); if (len > 0) return len; - len = interpret_branch_mark(name, namelen, at - name, buf, + len = interpret_branch_mark(the_repository, name, namelen, at - name, buf, push_mark, branch_get_push, allowed); if (len > 0) From patchwork Sat Mar 30 11:19:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878347 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 94934139A for ; Sat, 30 Mar 2019 11:22:00 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 806A128FEB for ; Sat, 30 Mar 2019 11:22:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 747CC2900A; Sat, 30 Mar 2019 11:22:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16CC128FEB for ; Sat, 30 Mar 2019 11:22:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730724AbfC3LV7 (ORCPT ); Sat, 30 Mar 2019 07:21:59 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:44655 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730453AbfC3LV6 (ORCPT ); Sat, 30 Mar 2019 07:21:58 -0400 Received: by mail-pf1-f195.google.com with SMTP id y13so2245508pfm.11 for ; Sat, 30 Mar 2019 04:21:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/5XiUNgZOyJMfbfBOhs6OmmQ4I37YwDc4n2auyrKfdQ=; b=SomQ7f0XMyPCOd18jdBkmqrzl+Ay8EsHahyLvrXRPRGmq/9n8gD3d+83N5DdQYli7y zLEkRcsOCUVyeVfkEqNmSoh7zWagGFd63TPXo/HeBZnoYNKF2HnX/VNo/8jt7E1t6yP2 IDrix8eCFmbcgTsrsa1Aym9iId9cnlCbchlwkKOrJ5qNkh9/GSqj8P977oSto8Kv0+T8 6EwEjNftO8+AY7b7wsUo24jnU/SnDCFw6LuLMrZ3tpGZ6OqkjgH69H+z9vuVyoMFrDQ3 geGItn+2VKAexQvMH/Suui+xD8h4bN8qRcphp97H0cUfHmRi/fNvPB3F424mOS5RGOXl M0Ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/5XiUNgZOyJMfbfBOhs6OmmQ4I37YwDc4n2auyrKfdQ=; b=iplvMj5ppPXPtzSM0IyftjffxstSDPsUntelWFe2WKGPyW7gH+RlJIHGvw27NNR3K1 24ReloVl/thuD4JP65V4WzIM7gQr4mYGrIFQ32mCp7pJnpFVQOVd/UVp2WlWtf+gPF+4 s0kGE+PxlTCg+e6Y1IorMra4D57Ix3FGMQFx20baX+IABq6fW4Rt7+LyJBpTlZjGP1nJ A81b2YzCHRPg8hgUlAJJK3aQC7q3S1x3r4fZ0Egu88pDBRhv3VB+0jpK73svFKH+UjNC O6/GKNdR4BTEI7q4MRFhm/Et1NRhNtHT19Rmodeq3+ctd9aDIKKdbf6yWcHwGvoGLnP0 N+cw== X-Gm-Message-State: APjAAAWVVj1zv/psMpyp7jgUUvDrHOsGvHlnNJfyq2rUeIO2V76HPom4 Lk0+yCxnMKhjPBFqWGFQUBl3UCDp X-Google-Smtp-Source: APXvYqyGC6oGTfKqI1VwgTTYYPHg8m1yvU8dfxhVY/lTgcpto4xy1Ek/3kPMpqwg9bptdWBlhyIexw== X-Received: by 2002:a63:2208:: with SMTP id i8mr34615161pgi.223.1553944918131; Sat, 30 Mar 2019 04:21:58 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id t3sm5610044pgv.39.2019.03.30.04.21.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:21:57 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:53 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 18/31] sha1-name.c: add repo_interpret_branch_name() Date: Sat, 30 Mar 2019 18:19:14 +0700 Message-Id: <20190330111927.18645-19-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 7d9512ac44..49c62d5254 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1390,7 +1390,8 @@ static int interpret_empty_at(const char *name, int namelen, int len, struct str return 1; } -static int reinterpret(const char *name, int namelen, int len, +static int reinterpret(struct repository *r, + const char *name, int namelen, int len, struct strbuf *buf, unsigned allowed) { /* we have extra data, which might need further processing */ @@ -1399,7 +1400,7 @@ static int reinterpret(const char *name, int namelen, int len, int ret; strbuf_add(buf, name + len, namelen - len); - ret = interpret_branch_name(buf->buf, buf->len, &tmp, allowed); + ret = repo_interpret_branch_name(r, buf->buf, buf->len, &tmp, allowed); /* that data was not interpreted, remove our cruft */ if (ret < 0) { strbuf_setlen(buf, used); @@ -1482,20 +1483,18 @@ int repo_interpret_branch_name(struct repository *r, const char *start; int len; - if (r != the_repository) - BUG("interpret_branch_name() does not really use 'r' yet"); if (!namelen) namelen = strlen(name); if (!allowed || (allowed & INTERPRET_BRANCH_LOCAL)) { - len = interpret_nth_prior_checkout(the_repository, name, namelen, buf); + len = interpret_nth_prior_checkout(r, name, namelen, buf); if (!len) { return len; /* syntax Ok, not enough switches */ } else if (len > 0) { if (len == namelen) return len; /* consumed all */ else - return reinterpret(name, namelen, len, buf, allowed); + return reinterpret(r, name, namelen, len, buf, allowed); } } @@ -1506,17 +1505,17 @@ int repo_interpret_branch_name(struct repository *r, if (!allowed || (allowed & INTERPRET_BRANCH_HEAD)) { len = interpret_empty_at(name, namelen, at - name, buf); if (len > 0) - return reinterpret(name, namelen, len, buf, + return reinterpret(r, name, namelen, len, buf, allowed); } - len = interpret_branch_mark(the_repository, name, namelen, at - name, buf, + len = interpret_branch_mark(r, name, namelen, at - name, buf, upstream_mark, branch_get_upstream, allowed); if (len > 0) return len; - len = interpret_branch_mark(the_repository, name, namelen, at - name, buf, + len = interpret_branch_mark(r, name, namelen, at - name, buf, push_mark, branch_get_push, allowed); if (len > 0) From patchwork Sat Mar 30 11:19:15 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878349 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 C51F613B5 for ; Sat, 30 Mar 2019 11:22:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B0C6C28FEB for ; Sat, 30 Mar 2019 11:22:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A2A8C2900A; Sat, 30 Mar 2019 11:22: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 4B4A628FEB for ; Sat, 30 Mar 2019 11:22:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730728AbfC3LWE (ORCPT ); Sat, 30 Mar 2019 07:22:04 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:34981 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730704AbfC3LWD (ORCPT ); Sat, 30 Mar 2019 07:22:03 -0400 Received: by mail-pg1-f195.google.com with SMTP id g8so2439322pgf.2 for ; Sat, 30 Mar 2019 04:22:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hvY2S7a8efdubnqZ497rHTpt8jwV5naQZUHDCe65xZU=; b=HraR7F0oYUFpZjn9nN2158VZlKLlBg5w2jr8S0/znd1yiuuZJ0CbgWp0XbOf+vlqa4 mEIzcLrE3cJGJ/4BS4jYl9LBePoy02uOcKRxiwMTWxkRB9/kqH7zx2jZdqh1A7dtu+tR wT1h4cV038pcXtRdfZJdcQsSSKfEWRWb9jR6C/oYP3bVMvK4af22T3JrFZVdWkZP1aMf PgHAWEjAl72tQskUj/0eJdBZl7RtwIgdhRm6QyHBkNJMK7QvZpfqwPB7xlW/q9zTNXRm RND7o3x2p0UkBloORW21iEGvWYL1nmLeuJ6SSvSTepXIDJ6OF4dP7XDQl6MUboIV2zgL DtPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hvY2S7a8efdubnqZ497rHTpt8jwV5naQZUHDCe65xZU=; b=Fbw3zR+WIil3UTYqC5uG5gorb8376IIDGgghVZ9fIcmOFqB2PQmdb8RpmSR+3Z8+Qt uxur9Of17/x+9LT1E53ky4RqMGWINiR4KiAcNQgTaV9fzs64UywzQ2CnZnAWuYcECkim qdv03sgXQ3q/Iq8Y/TTHexmWJ/xb5j1PRHkiZW/WlWySnKMq9srISS4oAjsZiTWFvo8k F1XcV191NWfQ58P9bfewX0WLHKcBCzuJv14H7R2e6RVVfTLxzGxxh0ZY7WtOZc/3hij8 ShCD4JnYO+VZjTYFLbU//uCeukisI4EOMSna4/I4W8Op/tzxoFdCVGNq4onrySjD0sn0 9aHg== X-Gm-Message-State: APjAAAWQ9yf4l1ZM+q1qf21S3HagVGqyPBKU1ZnO/Ahzkfe2NDC8bgfp j6gmKAAMOfG6B4sJNGM+ngbEnhLs X-Google-Smtp-Source: APXvYqzhgz056ETgLhoombg47R8Ub3B+PRfpMgB+QHVeXax96tUA1QSVJro4tBUfUXUVCIJHAhT+BA== X-Received: by 2002:a65:6299:: with SMTP id f25mr51376414pgv.376.1553944923220; Sat, 30 Mar 2019 04:22:03 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id p26sm8880471pfa.49.2019.03.30.04.22.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:02 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:21:58 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 19/31] sha1-name.c: remove the_repo from get_oid_oneline() Date: Sat, 30 Mar 2019 18:19:15 +0700 Message-Id: <20190330111927.18645-20-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 49c62d5254..fb80306f1a 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -15,7 +15,7 @@ #include "midx.h" #include "commit-reach.h" -static int get_oid_oneline(const char *, struct object_id *, struct commit_list *); +static int get_oid_oneline(struct repository *r, const char *, struct object_id *, struct commit_list *); typedef int (*disambiguate_hint_fn)(struct repository *, const struct object_id *, void *); @@ -1090,7 +1090,7 @@ static int peel_onion(const char *name, int len, struct object_id *oid, prefix = xstrndup(sp + 1, name + len - 1 - (sp + 1)); commit_list_insert((struct commit *)o, &list); - ret = get_oid_oneline(prefix, oid, list); + ret = get_oid_oneline(the_repository, prefix, oid, list); free(prefix); return ret; } @@ -1204,8 +1204,9 @@ static int handle_one_ref(const char *path, const struct object_id *oid, return 0; } -static int get_oid_oneline(const char *prefix, struct object_id *oid, - struct commit_list *list) +static int get_oid_oneline(struct repository *r, + const char *prefix, struct object_id *oid, + struct commit_list *list) { struct commit_list *backup = NULL, *l; int found = 0; @@ -1236,7 +1237,7 @@ static int get_oid_oneline(const char *prefix, struct object_id *oid, int matches; commit = pop_most_recent_commit(&list, ONELINE_SEEN); - if (!parse_object(the_repository, &commit->object.oid)) + if (!parse_object(r, &commit->object.oid)) continue; buf = get_commit_buffer(commit, NULL); p = strstr(buf, "\n\n"); @@ -1760,7 +1761,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, for_each_ref(handle_one_ref, &list); head_ref(handle_one_ref, &list); commit_list_sort_by_date(&list); - return get_oid_oneline(name + 2, oid, list); + return get_oid_oneline(repo, name + 2, oid, list); } if (namelen < 3 || name[2] != ':' || From patchwork Sat Mar 30 11:19:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878351 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 40C1F13B5 for ; Sat, 30 Mar 2019 11:22:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 29BED28FEB for ; Sat, 30 Mar 2019 11:22:11 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 1A5532900A; Sat, 30 Mar 2019 11:22: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 C01AE28FEB for ; Sat, 30 Mar 2019 11:22:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730704AbfC3LWJ (ORCPT ); Sat, 30 Mar 2019 07:22:09 -0400 Received: from mail-pf1-f196.google.com ([209.85.210.196]:42743 "EHLO mail-pf1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730696AbfC3LWJ (ORCPT ); Sat, 30 Mar 2019 07:22:09 -0400 Received: by mail-pf1-f196.google.com with SMTP id r15so2248718pfn.9 for ; Sat, 30 Mar 2019 04:22:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IHO0+//mUhxK1MPr5Z2K783mNYx8bk2aaztVe1lrmyQ=; b=qhIkUKY4TFbjP23Y2FCRV+xT4L3xd2tJXd5XO4SzZWoygJ4gTQDuaRu5a8vdWpVTEB 3lbShkUZYJdV8raq3CZMfGKzfbBS3wedyKJzVLSqoLkr1NExjx3S052U5CU2Y9BJUegj EPcCLnNpWHcFuS4Nvjcyt9vvnTLsb/NypS10bpRc4X9YnJodJ28obv171OP2/DsskFKs NcffnH2flkwzEtqjuLVYLpntQiHASZFa2YwXfKgQtbomW3A9fofUZMo0AF6L+ey4qCfh nxPFOn8xWv8DwthrKpz1cBogLHmwCYu/hxchtSgBWwra21ZyRFJLoPRMdpsm66wy3+O2 mrQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IHO0+//mUhxK1MPr5Z2K783mNYx8bk2aaztVe1lrmyQ=; b=B6fQZLoXqjUAZq487lRmxY1UWUwbMx2k8WPuWCAtFG0S4AjuGd4zxcaMoSDsjUZX6h BbJD5la0CqIFlrS9X+P7HXHuJx9BNJvDW356smjtE35RODy3saOl57VnsWJnMwSoNFdj yP5+s/nXy8JC3S8M1xUSblDs+z/UNn2qMcHu/L+lgxsajh1rk/Z6rzleQlIgbSW1T5Ng orffIL1vGf154HxZQOUkjno5iJYarh1Wu2IQon2N5YkIQG0GXlG+ouGKEkAyE51HKBf/ 57/12tTcmTk3rdvTfTd5kkfM2rN7FYcUKUZSKcUqmIfbz1w2Nd7r62pxIysEBjGHpOOb 3fUg== X-Gm-Message-State: APjAAAVml0NWkzsM3WQ0jHaoLqSDPn2/Cx2KTy7KagYdUKAzOeEtE/q7 2QbQqx6a+e5cmTLRz+wa65lT/Rca X-Google-Smtp-Source: APXvYqzz+pavLeKwyZsLtCqAp4KePXUlb0zIur8PztY/l62AnzjegEmzm/wi4H1aUKQ6UO4KgNqzTQ== X-Received: by 2002:a63:2c4c:: with SMTP id s73mr51671153pgs.113.1553944928327; Sat, 30 Mar 2019 04:22:08 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id t64sm11197490pfa.86.2019.03.30.04.22.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:07 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:03 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 20/31] sha1-name.c: remove the_repo from get_describe_name() Date: Sat, 30 Mar 2019 18:19:16 +0700 Message-Id: <20190330111927.18645-21-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index fb80306f1a..1cda854f02 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1097,7 +1097,9 @@ static int peel_onion(const char *name, int len, struct object_id *oid, return 0; } -static int get_describe_name(const char *name, int len, struct object_id *oid) +static int get_describe_name(struct repository *r, + const char *name, int len, + struct object_id *oid) { const char *cp; unsigned flags = GET_OID_QUIETLY | GET_OID_COMMIT; @@ -1111,7 +1113,7 @@ static int get_describe_name(const char *name, int len, struct object_id *oid) if (ch == 'g' && cp[-1] == '-') { cp++; len -= cp - name; - return get_short_oid(the_repository, + return get_short_oid(r, cp, len, oid, flags); } } @@ -1162,7 +1164,7 @@ static enum get_oid_result get_oid_1(const char *name, int len, return FOUND; /* It could be describe output that is "SOMETHING-gXXXX" */ - ret = get_describe_name(name, len, oid); + ret = get_describe_name(the_repository, name, len, oid); if (!ret) return FOUND; From patchwork Sat Mar 30 11:19:17 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878353 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 3501E139A for ; Sat, 30 Mar 2019 11:22:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2080228FEB for ; Sat, 30 Mar 2019 11:22:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 14FC12900A; Sat, 30 Mar 2019 11:22: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 A155228FEB for ; Sat, 30 Mar 2019 11:22:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730802AbfC3LWO (ORCPT ); Sat, 30 Mar 2019 07:22:14 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:37011 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730696AbfC3LWO (ORCPT ); Sat, 30 Mar 2019 07:22:14 -0400 Received: by mail-pf1-f193.google.com with SMTP id 8so2263839pfr.4 for ; Sat, 30 Mar 2019 04:22:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=tV7Pu8ExeeZC83xGO7zNWhu0P7oJAV/3/iczI9tiSeE=; b=uJcoukJbTLYxJUonIG/W96qRKpDbf/dBDjFy54eRiPSIWFGKcnsrEsHZ3Cr8cNXgAW srzCg4pxt4bTjWDYMirz+MaMjbhASH3p4YWUPLNUREH820MqFXWK38Wm61IruSRKn1jc br4eh8BtpY22r7/ufGhKPgH89tFFEMwlbOE58Y2sxUPCxdInQ7jeQ514+lJO4CO9kpUZ pmBIykc+geDTB3pKoO8znB4g8U3m1d5uHBNr8cbfZG2JD4PLyWFuYLdU/qjNoZcvw+ko UmRpqV/VNhFxrh5vq6LadVii+b97cPWrMV4oWX7ggdpAmoWvL8dd1vV/MUqjAUtDIq+2 4BAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=tV7Pu8ExeeZC83xGO7zNWhu0P7oJAV/3/iczI9tiSeE=; b=MgfV38qPUg/Hmam1MBjTRxnWU0TW7ByzurbFXVzaS4Vk5SrVL97uI5qI21gr2lDC+2 e5rUMKAmoUTtSITB0pz52qR8flRh75bOVzUD6h3xIHx+x2NX9SMCAhGkKtiClqkQ908+ VdxsoUUOqlRsljdn75TcWYT1xMOh0wFWBLL7uQOByW61pwCqyj8HINXF+vI/xHTp+flt AhgH7k/7+NaXU1UdirpXmQtr6XkPw3XeEHfBEV6hYAQLbFMbDBIa3/uxh0t4SoXRSjll ACNlmI4dg4BAJgEPwXF0OaFMnfT3RUhsxzZ8oAoITbkkblYVSfQwYTVb4BCnx40OEPq/ 8Kwg== X-Gm-Message-State: APjAAAW0OJtXOwaAPpFGjK+QlPrzLxDADciyyD//tQlqwpwoXWCZ7BkY GvlU9M5LAeH71QAUs7kUsGSDxeIY X-Google-Smtp-Source: APXvYqzwWG/FDEsNj+XPVIrImNyB1he4R793fleHdyBNtZT8/4f10gDXKlkpLdT/3jYuWzMNUgYlJg== X-Received: by 2002:a63:e051:: with SMTP id n17mr50370600pgj.19.1553944933532; Sat, 30 Mar 2019 04:22:13 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id d69sm8655493pfg.26.2019.03.30.04.22.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:12 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:08 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 21/31] sha1-name.c: remove the_repo from get_oid_basic() Date: Sat, 30 Mar 2019 18:19:17 +0700 Message-Id: <20190330111927.18645-22-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 1cda854f02..d4c135aea8 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -773,8 +773,8 @@ static inline int push_mark(const char *string, int len) static enum get_oid_result get_oid_1(const char *name, int len, struct object_id *oid, unsigned lookup_flags); static int interpret_nth_prior_checkout(struct repository *r, const char *name, int namelen, struct strbuf *buf); -static int get_oid_basic(const char *str, int len, struct object_id *oid, - unsigned int flags) +static int get_oid_basic(struct repository *r, const char *str, int len, + struct object_id *oid, unsigned int flags) { static const char *warn_msg = "refname '%.*s' is ambiguous."; static const char *object_name_msg = N_( @@ -792,9 +792,9 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, int refs_found = 0; int at, reflog_len, nth_prior = 0; - if (len == the_hash_algo->hexsz && !get_oid_hex(str, oid)) { + if (len == r->hash_algo->hexsz && !get_oid_hex(str, oid)) { if (warn_ambiguous_refs && warn_on_object_refname_ambiguity) { - refs_found = dwim_ref(str, len, &tmp_oid, &real_ref); + refs_found = repo_dwim_ref(r, str, len, &tmp_oid, &real_ref); if (refs_found > 0) { warning(warn_msg, len, str); if (advice_object_name_warning) @@ -835,8 +835,8 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, struct strbuf buf = STRBUF_INIT; int detached; - if (interpret_nth_prior_checkout(the_repository, str, len, &buf) > 0) { - detached = (buf.len == the_hash_algo->hexsz && !get_oid_hex(buf.buf, oid)); + if (interpret_nth_prior_checkout(r, str, len, &buf) > 0) { + detached = (buf.len == r->hash_algo->hexsz && !get_oid_hex(buf.buf, oid)); strbuf_release(&buf); if (detached) return 0; @@ -845,19 +845,18 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, if (!len && reflog_len) /* allow "@{...}" to mean the current branch reflog */ - refs_found = dwim_ref("HEAD", 4, oid, &real_ref); + refs_found = repo_dwim_ref(r, "HEAD", 4, oid, &real_ref); else if (reflog_len) - refs_found = dwim_log(str, len, oid, &real_ref); + refs_found = repo_dwim_log(r, str, len, oid, &real_ref); else - refs_found = dwim_ref(str, len, oid, &real_ref); + refs_found = repo_dwim_ref(r, str, len, oid, &real_ref); if (!refs_found) return -1; if (warn_ambiguous_refs && !(flags & GET_OID_QUIETLY) && (refs_found > 1 || - !get_short_oid(the_repository, - str, len, &tmp_oid, GET_OID_QUIETLY))) + !get_short_oid(r, str, len, &tmp_oid, GET_OID_QUIETLY))) warning(warn_msg, len, str); if (reflog_len) { @@ -889,7 +888,7 @@ static int get_oid_basic(const char *str, int len, struct object_id *oid, return -1; } } - if (read_ref_at(get_main_ref_store(the_repository), + if (read_ref_at(get_main_ref_store(r), real_ref, flags, at_time, nth, oid, NULL, &co_time, &co_tz, &co_cnt)) { if (!len) { @@ -1159,7 +1158,7 @@ static enum get_oid_result get_oid_1(const char *name, int len, if (!ret) return FOUND; - ret = get_oid_basic(name, len, oid, lookup_flags); + ret = get_oid_basic(the_repository, name, len, oid, lookup_flags); if (!ret) return FOUND; From patchwork Sat Mar 30 11:19:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878355 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 0742613B5 for ; Sat, 30 Mar 2019 11:22:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E544B28FEB for ; Sat, 30 Mar 2019 11:22:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D99822900A; Sat, 30 Mar 2019 11:22:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3455F28FEB for ; Sat, 30 Mar 2019 11:22:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730751AbfC3LWT (ORCPT ); Sat, 30 Mar 2019 07:22:19 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:44615 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730464AbfC3LWT (ORCPT ); Sat, 30 Mar 2019 07:22:19 -0400 Received: by mail-pg1-f196.google.com with SMTP id i2so2419703pgj.11 for ; Sat, 30 Mar 2019 04:22:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1VrGbTQQ9UY3cc5ZVT/2Jzavz0lrpN5XvZvKzS958UI=; b=Nya6Hbwz22f8jaXLyryfplhvF0xoleH68pOFkXR8rW0mr7FNgWQ24UJvYSFNgwm3NN PPU1QPa5Xbfqo4ETPEEZ+ixsaL8q+rGinytAcG3MCF/LSUho5HkBkOwj5MFVFF/ca+Vn jmJlhTXf9+SLHdp/sMfPoEvagCJ7RXorD/Gp0uBSU1E5LTD2j3M+7s9OXO6eVe5anCdA 2ROQv7PI3elia1QqQs5bAmmtka3YAX2CDuNNKUEsETkSSgoQ7ZL3/RcL/a7FxIDq1qnU c8UmSeyhFcRMhH6wdRQpYivwsY5LVssokRYBqZxVGonvllgvr46f+60/iOnjPdOVaDIN BYZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1VrGbTQQ9UY3cc5ZVT/2Jzavz0lrpN5XvZvKzS958UI=; b=RJehBfCKsgv14SBpCkPh2L0NAVcv9/VBDtmsWa2RlwL/LHnhz2L8tStkCKACCltUfg h+PZT1r/TyFoypWfT6/VqnU/BiQQUOhftrDvYC/xOG0oS2NGQ6OMgMWlRcgi0a9cgyQd 7U9y/fnAP72hEsGqVktFOVNEms8ru5zQN3bhF9hG1l+U5kWAQez59nk7i8+ky6UP3arc GDCZ4eA3cn5YOIxvq3WkvnZlLfGtrq1/zt82BPXcRZPbQ/71XPevHJc0Z4gBbifD1hbA 2kzI21tzvaRL2S3KpYbWVN9WhKr3hxnTzsP+mbZnXonbI4yTjqGZGYTxx4YB532TirB8 uvyg== X-Gm-Message-State: APjAAAXmoBHLXMZCyYuH9AarxFsEBwBetMIH8isSt7fLRCYNOyK8Jy5J 7mA2WgQ54TVGFO/GNGLsiKrj+eO/ X-Google-Smtp-Source: APXvYqyxjnIzMGwvn4GVWCLRZQ/dKYJv2H0JKbJ2L0gsbGhZHX/2RTmxmkHScB527SpHqEsCchgTlQ== X-Received: by 2002:a63:e051:: with SMTP id n17mr50370907pgj.19.1553944938597; Sat, 30 Mar 2019 04:22:18 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id 10sm6728024pfh.14.2019.03.30.04.22.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:17 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:13 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 22/31] sha1-name.c: remove the_repo from get_oid_1() Date: Sat, 30 Mar 2019 18:19:18 +0700 Message-Id: <20190330111927.18645-23-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP There is a cyclic dependency between one of these functions so they cannot be converted one by one, so all related functions are converted at once. Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 7 +++++-- sha1-name.c | 59 ++++++++++++++++++++++++++++------------------------- 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/cache.h b/cache.h index 0cb95c0d4f..2149dc4f56 100644 --- a/cache.h +++ b/cache.h @@ -1491,8 +1491,11 @@ extern void *read_object_with_reference(const struct object_id *oid, unsigned long *size, struct object_id *oid_ret); -extern struct object *peel_to_type(const char *name, int namelen, - struct object *o, enum object_type); +struct object *repo_peel_to_type(struct repository *r, + const char *name, int namelen, + struct object *o, enum object_type); +#define peel_to_type(name, namelen, obj, type) \ + repo_peel_to_type(the_repository, name, namelen, obj, type) enum date_mode_type { DATE_NORMAL = 0, diff --git a/sha1-name.c b/sha1-name.c index d4c135aea8..5741a9f821 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -770,7 +770,7 @@ static inline int push_mark(const char *string, int len) return at_mark(string, len, suffix, ARRAY_SIZE(suffix)); } -static enum get_oid_result get_oid_1(const char *name, int len, struct object_id *oid, unsigned lookup_flags); +static enum get_oid_result get_oid_1(struct repository *r, const char *name, int len, struct object_id *oid, unsigned lookup_flags); static int interpret_nth_prior_checkout(struct repository *r, const char *name, int namelen, struct strbuf *buf); static int get_oid_basic(struct repository *r, const char *str, int len, @@ -921,18 +921,19 @@ static int get_oid_basic(struct repository *r, const char *str, int len, return 0; } -static enum get_oid_result get_parent(const char *name, int len, +static enum get_oid_result get_parent(struct repository *r, + const char *name, int len, struct object_id *result, int idx) { struct object_id oid; - enum get_oid_result ret = get_oid_1(name, len, &oid, + enum get_oid_result ret = get_oid_1(r, name, len, &oid, GET_OID_COMMITTISH); struct commit *commit; struct commit_list *p; if (ret) return ret; - commit = lookup_commit_reference(the_repository, &oid); + commit = lookup_commit_reference(r, &oid); if (parse_commit(commit)) return MISSING_OBJECT; if (!idx) { @@ -950,7 +951,8 @@ static enum get_oid_result get_parent(const char *name, int len, return MISSING_OBJECT; } -static enum get_oid_result get_nth_ancestor(const char *name, int len, +static enum get_oid_result get_nth_ancestor(struct repository *r, + const char *name, int len, struct object_id *result, int generation) { @@ -958,10 +960,10 @@ static enum get_oid_result get_nth_ancestor(const char *name, int len, struct commit *commit; int ret; - ret = get_oid_1(name, len, &oid, GET_OID_COMMITTISH); + ret = get_oid_1(r, name, len, &oid, GET_OID_COMMITTISH); if (ret) return ret; - commit = lookup_commit_reference(the_repository, &oid); + commit = lookup_commit_reference(r, &oid); if (!commit) return MISSING_OBJECT; @@ -974,20 +976,20 @@ static enum get_oid_result get_nth_ancestor(const char *name, int len, return FOUND; } -struct object *peel_to_type(const char *name, int namelen, - struct object *o, enum object_type expected_type) +struct object *repo_peel_to_type(struct repository *r, const char *name, int namelen, + struct object *o, enum object_type expected_type) { if (name && !namelen) namelen = strlen(name); while (1) { - if (!o || (!o->parsed && !parse_object(the_repository, &o->oid))) + if (!o || (!o->parsed && !parse_object(r, &o->oid))) return NULL; if (expected_type == OBJ_ANY || o->type == expected_type) return o; if (o->type == OBJ_TAG) o = ((struct tag*) o)->tagged; else if (o->type == OBJ_COMMIT) - o = &(get_commit_tree(((struct commit *)o))->object); + o = &(repo_get_commit_tree(r, ((struct commit *)o))->object); else { if (name) error("%.*s: expected %s type, but the object " @@ -999,8 +1001,8 @@ struct object *peel_to_type(const char *name, int namelen, } } -static int peel_onion(const char *name, int len, struct object_id *oid, - unsigned lookup_flags) +static int peel_onion(struct repository *r, const char *name, int len, + struct object_id *oid, unsigned lookup_flags) { struct object_id outer; const char *sp; @@ -1050,15 +1052,15 @@ static int peel_onion(const char *name, int len, struct object_id *oid, else if (expected_type == OBJ_TREE) lookup_flags |= GET_OID_TREEISH; - if (get_oid_1(name, sp - name - 2, &outer, lookup_flags)) + if (get_oid_1(r, name, sp - name - 2, &outer, lookup_flags)) return -1; - o = parse_object(the_repository, &outer); + o = parse_object(r, &outer); if (!o) return -1; if (!expected_type) { - o = deref_tag(the_repository, o, name, sp - name - 2); - if (!o || (!o->parsed && !parse_object(the_repository, &o->oid))) + o = deref_tag(r, o, name, sp - name - 2); + if (!o || (!o->parsed && !parse_object(r, &o->oid))) return -1; oidcpy(oid, &o->oid); return 0; @@ -1069,7 +1071,7 @@ static int peel_onion(const char *name, int len, struct object_id *oid, * if we do not get the needed object, we should * barf. */ - o = peel_to_type(name, len, o, expected_type); + o = repo_peel_to_type(r, name, len, o, expected_type); if (!o) return -1; @@ -1089,7 +1091,7 @@ static int peel_onion(const char *name, int len, struct object_id *oid, prefix = xstrndup(sp + 1, name + len - 1 - (sp + 1)); commit_list_insert((struct commit *)o, &list); - ret = get_oid_oneline(the_repository, prefix, oid, list); + ret = get_oid_oneline(r, prefix, oid, list); free(prefix); return ret; } @@ -1120,7 +1122,8 @@ static int get_describe_name(struct repository *r, return -1; } -static enum get_oid_result get_oid_1(const char *name, int len, +static enum get_oid_result get_oid_1(struct repository *r, + const char *name, int len, struct object_id *oid, unsigned lookup_flags) { @@ -1149,25 +1152,25 @@ static enum get_oid_result get_oid_1(const char *name, int len, if (!num && len1 == len - 1) num = 1; if (has_suffix == '^') - return get_parent(name, len1, oid, num); + return get_parent(r, name, len1, oid, num); /* else if (has_suffix == '~') -- goes without saying */ - return get_nth_ancestor(name, len1, oid, num); + return get_nth_ancestor(r, name, len1, oid, num); } - ret = peel_onion(name, len, oid, lookup_flags); + ret = peel_onion(r, name, len, oid, lookup_flags); if (!ret) return FOUND; - ret = get_oid_basic(the_repository, name, len, oid, lookup_flags); + ret = get_oid_basic(r, name, len, oid, lookup_flags); if (!ret) return FOUND; /* It could be describe output that is "SOMETHING-gXXXX" */ - ret = get_describe_name(the_repository, name, len, oid); + ret = get_describe_name(r, name, len, oid); if (!ret) return FOUND; - return get_short_oid(the_repository, name, len, oid, lookup_flags); + return get_short_oid(r, name, len, oid, lookup_flags); } /* @@ -1741,7 +1744,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, memset(oc, 0, sizeof(*oc)); oc->mode = S_IFINVALID; strbuf_init(&oc->symlink_path, 0); - ret = get_oid_1(name, namelen, oid, flags); + ret = get_oid_1(repo, name, namelen, oid, flags); if (!ret) return ret; /* @@ -1822,7 +1825,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, sub_flags &= ~GET_OID_DISAMBIGUATORS; sub_flags |= GET_OID_TREEISH; - if (!get_oid_1(name, len, &tree_oid, sub_flags)) { + if (!get_oid_1(repo, name, len, &tree_oid, sub_flags)) { const char *filename = cp+1; char *new_filename = NULL; From patchwork Sat Mar 30 11:19:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878357 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 7FF4C13B5 for ; Sat, 30 Mar 2019 11:22:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6B62D28FEB for ; Sat, 30 Mar 2019 11:22:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5F0602900A; Sat, 30 Mar 2019 11:22: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 0A5BA28FEB for ; Sat, 30 Mar 2019 11:22:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730748AbfC3LWZ (ORCPT ); Sat, 30 Mar 2019 07:22:25 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:33331 "EHLO mail-pf1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730464AbfC3LWY (ORCPT ); Sat, 30 Mar 2019 07:22:24 -0400 Received: by mail-pf1-f195.google.com with SMTP id i19so2266514pfd.0 for ; Sat, 30 Mar 2019 04:22:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=J/RUO8ACXrqeLwgRI/QX11nIxHpfBgPfHg/OeHAlD+4=; b=AORPUZLRMrVUv0whLSnb0LQKQWeOBaL93iH1riebYV9tgcYLMeT5442CG3DdEcqSfd TthAHR1+gY1RuNvrLAykuqRQMAJNZP1ZVnBmeJ9gNb9O3B7F9fD/clZc+TprPtxkyFId 8noT3zaf51uG1kYphVFZRw4ovD8Q8pKopXNZIMqbiMdad05wXMwZv4gkrqb+nd1jEzea 9FGIusQOb/q2OftI6sVwqRkTyXWUvPEqcYG+jZf9fFp0ScFwTtqxGrpxKUOQTfBCgxgy d9Bhu+EJXpELi68tvtxltmYyFYp9kR2l+konb4wI96cqL+C03yokEwxqGAi2vBj1IEEb xn3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=J/RUO8ACXrqeLwgRI/QX11nIxHpfBgPfHg/OeHAlD+4=; b=pdKfpAx/2N6hjlIMTdgPZTka+3sMPEkd72bn9jtiUp6Iut7VRcf9HivhG7DOWvLt/q +RK+8VXZRjsoZi8AtvhsKcw6li33cu7auE7weyFX0nnxPU5oXXSZiKIBlSwV3XJK5m9h /Gdr7SXemcPJYS4CrLKjCTomx0orhZ7ss+KvdRvAf6SfQgAb/HfVd03jzC06ATKknzKn T/7yX467Q2gaVaya3zHCIkAadRQ5ZiPpzwLTogCKev717A6w2l+gXG/9hbrFuqt0sQo6 D0PatePS5S5Xg9YkowUE/m7oayA3Sjz7IyXSAuvVtPjRQQ0gzok7y5woDbnQJSCFplKx P8zw== X-Gm-Message-State: APjAAAX43g8eVhw2bVdz1PwzevXaB67wxg72nGXdzRIl8aO9kyiIGA4P /YjB00GoEb1dOowNMUI5ZSYiUbY7 X-Google-Smtp-Source: APXvYqwZfaOz3Ic99WYCKERhCiV0jkl6fCXayWMqMIONQlOGy7TySgMspL2Hqd2yz3WD5CxPMy492w== X-Received: by 2002:a65:6489:: with SMTP id e9mr35053138pgv.364.1553944943717; Sat, 30 Mar 2019 04:22:23 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id f65sm7037356pff.21.2019.03.30.04.22.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:22 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:18 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 23/31] sha1-name.c: remove the_repo from handle_one_ref() Date: Sat, 30 Mar 2019 18:19:19 +0700 Message-Id: <20190330111927.18645-24-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 5741a9f821..d9050776dd 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1189,15 +1189,21 @@ static enum get_oid_result get_oid_1(struct repository *r, /* Remember to update object flag allocation in object.h */ #define ONELINE_SEEN (1u<<20) +struct handle_one_ref_cb { + struct repository *repo; + struct commit_list **list; +}; + static int handle_one_ref(const char *path, const struct object_id *oid, int flag, void *cb_data) { - struct commit_list **list = cb_data; - struct object *object = parse_object(the_repository, oid); + struct handle_one_ref_cb *cb = cb_data; + struct commit_list **list = cb->list; + struct object *object = parse_object(cb->repo, oid); if (!object) return 0; if (object->type == OBJ_TAG) { - object = deref_tag(the_repository, object, path, + object = deref_tag(cb->repo, object, path, strlen(path)); if (!object) return 0; @@ -1760,10 +1766,13 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, char *new_path = NULL; int pos; if (!only_to_die && namelen > 2 && name[1] == '/') { + struct handle_one_ref_cb cb; struct commit_list *list = NULL; - for_each_ref(handle_one_ref, &list); - head_ref(handle_one_ref, &list); + cb.repo = repo; + cb.list = &list; + refs_for_each_ref(repo->refs, handle_one_ref, &cb); + refs_head_ref(repo->refs, handle_one_ref, &cb); commit_list_sort_by_date(&list); return get_oid_oneline(repo, name + 2, oid, list); } From patchwork Sat Mar 30 11:19:20 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878359 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 55A84139A for ; Sat, 30 Mar 2019 11:22:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4034528FEB for ; Sat, 30 Mar 2019 11:22:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 346BF2900A; Sat, 30 Mar 2019 11:22:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C74C528FEB for ; Sat, 30 Mar 2019 11:22:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730750AbfC3LW3 (ORCPT ); Sat, 30 Mar 2019 07:22:29 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:38298 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730430AbfC3LW3 (ORCPT ); Sat, 30 Mar 2019 07:22:29 -0400 Received: by mail-pl1-f196.google.com with SMTP id g37so2221770plb.5 for ; Sat, 30 Mar 2019 04:22:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1HRwL2T7MODfcXrlBYA8wLAi07ntXHgzSLd7OPKp/jk=; b=mvl3z5EVfCDeyesZvt5ajaTcwI4ZdJaDpntH3F+zg4HtypIbMcv19tcrOn/+amvqgj HF3F40wO40UDDMenZCvCc0UIPIurCUBAsEn39dvYtDCuQUH8QSWwIFc9KtHS1wL+CPXv fuVUzL+QlWsTEFEGpHNOXQK+Sou3rFrBbqbHMuL9xOpcJpyzrB0+4AqKoyqchNrXeCsf fNZUXe/f5XneqEV9OcwstQA78cCkyGlCsRbaY8lNGEks5qOcpxZq19jwfbjlyIKbZwOK t329tGgwlUsbJsefXykuZoaUp6ibH1hwHv0qXwju4mwM1q722nqvnHaPuqe7NtX1Hm+E LQOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1HRwL2T7MODfcXrlBYA8wLAi07ntXHgzSLd7OPKp/jk=; b=ChVR7MZ+xWuoFifa6ve9YX2JIv+eAXm5fDt1fXJ5whioVaFoLvqiFn7FWh1cJhLKr5 ZC74Jaka1n+6HXnYXMAEkVYg5W3S2+AfnSKztqyU9MgstsKk4oDPWJKOfgxPD88S/m4o pXNuommExe0vBHbEVnwfKjnj/gAgWoZp3ukHmKMB9qHdTYHmAewiafJTF9eXdZE+s56e EIPeU4PpOnr8/Kks83ZK9LXdxJXLtcr177Mz0QLssw5rBxlqsjEYjTBLdBH0ga8glFPX 8QEaxaSJUdc81rjXu7SlfL+Wsd+H3wiRrr/0HFYaDXC2qAu/0XYmAQ0KixqEiC3fYTvO Emfg== X-Gm-Message-State: APjAAAXDLW4u2sbcp9YUAGFKdaw8uAvcpxsXXNSEsWpZtO0Wel0yDkY3 lolLyir4SXtpxW6hANcPs53Yxpdw X-Google-Smtp-Source: APXvYqzka7lp/DbMNl9R2VsXNK70YAGujy3fm+Y6VqkiPhuYOCtFwN/qZ/CkJ5PJCS23ck9JD5r0Zg== X-Received: by 2002:a17:902:a612:: with SMTP id u18mr53316220plq.145.1553944948677; Sat, 30 Mar 2019 04:22:28 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id 139sm11127355pfw.98.2019.03.30.04.22.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:28 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:24 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 24/31] sha1-name.c: remove the_repo from diagnose_invalid_index_path() Date: Sat, 30 Mar 2019 18:19:20 +0700 Message-Id: <20190330111927.18645-25-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- dir.c | 8 ++++++++ dir.h | 4 +++- sha1-name.c | 7 ++++--- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/dir.c b/dir.c index b2cabadf25..e6d97343f4 100644 --- a/dir.c +++ b/dir.c @@ -2315,6 +2315,14 @@ int file_exists(const char *f) return lstat(f, &sb) == 0; } +int repo_file_exists(struct repository *repo, const char *path) +{ + if (repo != the_repository) + BUG("do not know how to check file existence in arbitrary repo"); + + return file_exists(path); +} + static int cmp_icase(char a, char b) { if (a == b) diff --git a/dir.h b/dir.h index e3ec26143d..47c5409ced 100644 --- a/dir.h +++ b/dir.h @@ -269,7 +269,9 @@ extern void add_exclude(const char *string, const char *base, int baselen, struct exclude_list *el, int srcpos); extern void clear_exclude_list(struct exclude_list *el); extern void clear_directory(struct dir_struct *dir); -extern int file_exists(const char *); + +int repo_file_exists(struct repository *repo, const char *path); +int file_exists(const char *); extern int is_inside_dir(const char *dir); extern int dir_inside_of(const char *subdir, const char *dir); diff --git a/sha1-name.c b/sha1-name.c index d9050776dd..6caf3f4e3a 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1664,11 +1664,12 @@ static void diagnose_invalid_oid_path(const char *prefix, } /* Must be called only when :stage:filename doesn't exist. */ -static void diagnose_invalid_index_path(struct index_state *istate, +static void diagnose_invalid_index_path(struct repository *r, int stage, const char *prefix, const char *filename) { + struct index_state *istate = r->index; const struct cache_entry *ce; int pos; unsigned namelen = strlen(filename); @@ -1708,7 +1709,7 @@ static void diagnose_invalid_index_path(struct index_state *istate, ce_stage(ce), filename); } - if (file_exists(filename)) + if (repo_file_exists(r, filename)) die("Path '%s' exists on disk, but not in the index.", filename); if (is_missing_file_error(errno)) die("Path '%s' does not exist (neither on disk nor in the index).", @@ -1814,7 +1815,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, pos++; } if (only_to_die && name[1] && name[1] != '/') - diagnose_invalid_index_path(repo->index, stage, prefix, cp); + diagnose_invalid_index_path(repo, stage, prefix, cp); free(new_path); return -1; } From patchwork Sat Mar 30 11:19:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878361 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 545FD139A for ; Sat, 30 Mar 2019 11:22:36 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3FFD128FEB for ; Sat, 30 Mar 2019 11:22:36 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 344792900A; Sat, 30 Mar 2019 11:22:36 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D5F3C28FEB for ; Sat, 30 Mar 2019 11:22:35 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730753AbfC3LWe (ORCPT ); Sat, 30 Mar 2019 07:22:34 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:38304 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730430AbfC3LWe (ORCPT ); Sat, 30 Mar 2019 07:22:34 -0400 Received: by mail-pl1-f196.google.com with SMTP id g37so2221840plb.5 for ; Sat, 30 Mar 2019 04:22:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1353qhiBFkvg4CjMPjTgaQAM7MfVk9j47bxGFKrEJdQ=; b=r6W9CF8SzUt170BJMqHnUDj5gENKlPoiF0uTYhXiYTvxHWxRtkHkHb2sc7LLpGhzMn eOZrR5wK/PjZiR2b5lGD2qjdQrcwrVFIsMLbXbC1TS1/pl2TmDny0ZI3sk8Y1ztqXH4p DFS7XuvRdlZGPijNbkG8tE0W+BKis+KPMrUz/hGHG3XSv5GH08TeJkZHWej16BIGuAI+ tmI8f/MMEkWJaVGaBrvZzjmGG92NcRe5ZGNBiVUyRvvSxeFSyLhF4dfHPsm3UT8G/lKB FWaNWQl6zSZ24yrZPK8W5NgQPT/UqmR0KYHmoR6dBl2oV2xt4izHDudEYJ5I7XXUMBax qEug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1353qhiBFkvg4CjMPjTgaQAM7MfVk9j47bxGFKrEJdQ=; b=knVXaV2UP/KBUm/56ndMoNG+nzS41QgbA2f6CZ5/yvvRInj1toiwaZxT1APCMsctaJ mk2RmzvLE7M/Ls2LMr694VjUgGeAttvNjGuLA1q0TKPBxbOHGKCT1UUlJtDtKjsTNo8q Z7I7QoursUmkNhtj75gIK9MyQ65l6iOI++8LxunHNRbLVWYJ+hMrsX3qyCUGFHpmY7nK 8gf5dw4GMC/qule8ij5k5nbfo/HTW2u/AtNlJEXIB9LSjXzUnTJJEbrJ/xaCG021JKl5 KnkK4b61NxP7JEdXBEn1HF4TAMxduA9XB2aIi2zcI/kOnoE3+GqqTXr30VxZTZ3eeVnS X1rQ== X-Gm-Message-State: APjAAAVi6MZ4foAkrNCMcmNPalEQTpTVbQ2dVe3ha8bTmN7mZ8dKIYdc Rrp1A43ZYQ7Z8uB+OqtZMVBj6+ne X-Google-Smtp-Source: APXvYqyMykcIYA3v9DoHBgdWWWtU02dSknILzQIVqQAbfkUrMLhLTTpDb3ZE8IRyGm5JnLVzc0+XQw== X-Received: by 2002:a17:902:9001:: with SMTP id a1mr23734442plp.96.1553944953520; Sat, 30 Mar 2019 04:22:33 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id g4sm8538804pfm.115.2019.03.30.04.22.30 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:32 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:29 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 25/31] sha1-name.c: remove the_repo from resolve_relative_path() Date: Sat, 30 Mar 2019 18:19:21 +0700 Message-Id: <20190330111927.18645-26-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP "remove" is not entirely correct. But at least the function is aware that if the given repo is not the_repository, then $CWD and is_inside_work_tree() means nothing. Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sha1-name.c b/sha1-name.c index 6caf3f4e3a..6b53ea2eeb 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1719,12 +1719,12 @@ static void diagnose_invalid_index_path(struct repository *r, } -static char *resolve_relative_path(const char *rel) +static char *resolve_relative_path(struct repository *r, const char *rel) { if (!starts_with(rel, "./") && !starts_with(rel, "../")) return NULL; - if (!is_inside_work_tree()) + if (r != the_repository || !is_inside_work_tree()) die("relative path syntax can't be used outside working tree."); /* die() inside prefix_path() if resolved path is outside worktree */ @@ -1785,7 +1785,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, stage = name[1] - '0'; cp = name + 3; } - new_path = resolve_relative_path(cp); + new_path = resolve_relative_path(repo, cp); if (!new_path) { namelen = namelen - (cp - name); } else { @@ -1839,7 +1839,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, const char *filename = cp+1; char *new_filename = NULL; - new_filename = resolve_relative_path(filename); + new_filename = resolve_relative_path(repo, filename); if (new_filename) filename = new_filename; if (flags & GET_OID_FOLLOW_SYMLINKS) { From patchwork Sat Mar 30 11:19:22 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878363 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 EB34913B5 for ; Sat, 30 Mar 2019 11:22:40 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D6DC928FEB for ; Sat, 30 Mar 2019 11:22:40 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CB74A2900A; Sat, 30 Mar 2019 11:22:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7AB3328FEB for ; Sat, 30 Mar 2019 11:22:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730806AbfC3LWj (ORCPT ); Sat, 30 Mar 2019 07:22:39 -0400 Received: from mail-pl1-f195.google.com ([209.85.214.195]:38312 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730430AbfC3LWj (ORCPT ); Sat, 30 Mar 2019 07:22:39 -0400 Received: by mail-pl1-f195.google.com with SMTP id g37so2221912plb.5 for ; Sat, 30 Mar 2019 04:22:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Vod4aOH+wA+JD7yNprXuqsVCLUsUss9P8ReeepwUd1o=; b=XMEI2/idG7Axvn+oSI5oe1zCCVn1O6EWazHbA5Y7f8TJjfw13pg0SbQuSFsjXdpLF1 RuKWslsFU1f7/TbFgq8Ah3hv4s/oEqza5IHyeDjunwHWIZj8Tz79B3ineH9PmnO2FxuJ iThkhlrzvpeeIywwwCNh3HiygvkOrT+DjPpz06Ag/Fs236CWvTNfhcmEzuIaR2LMuv/y 8FayJouoxb9creT02QUeVX/QhbNbii5xGvIWfYhWLN5XfOEWvMsak5pi8hQPRDoV4Ovp P1/IH10aEwvqRso6BdVO2NpqzC2NVlr1NcC2bE9s1FkvoDnqIwpRAT1Ir5ZDn6Hdzcoe MT9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Vod4aOH+wA+JD7yNprXuqsVCLUsUss9P8ReeepwUd1o=; b=tBvrAVpRU/CmMth0sfGeJcif5I6m+6OpD1nMK0+1iehNG5KO8xoXaCl/xPvzvRLO64 s9aJwLI8qOWafRnwqtZn+oINTDWAlUsI4boa/MNwsII3D+2W1Xg9itTSN5cbsD87ennp l3FV+qxcn3htyNIjw91cblsoUCKMP+syOhKBK8Fqd6zWbLwAv3pt7tK3gKXaOc+TW4LX mOMZl6T60QdTIbF+dkpwlpwDTkqSdvxdJlcxlIm8htcLnwRemQHkIKdvC+gJZ3KaEx3U dOETTqg5KZZ87urg00mj87o6wfQnA62ULNnCSFiylOA9g2Xy6WyPev2RxYBq/eT0y0YN IA+Q== X-Gm-Message-State: APjAAAUveYW/KPT2Hn6STdC/x7DZnYryyH/s3MJ2qH7Y3k46GGoTuVnw ZzL6Rt07VNcfPJKzx0xljFIpy9b0 X-Google-Smtp-Source: APXvYqyrzMas0r1LJXOQdr+KPym5kCk5pTm7Hv4gStia9ZObq+WVCiuNV1uN11w7LvMraaPC3A81NQ== X-Received: by 2002:a17:902:e709:: with SMTP id co9mr30801490plb.86.1553944958368; Sat, 30 Mar 2019 04:22:38 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id j28sm10627788pgb.46.2019.03.30.04.22.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:37 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:33 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 26/31] sha1-name.c: remove the_repo from get_oid_with_context_1() Date: Sat, 30 Mar 2019 18:19:22 +0700 Message-Id: <20190330111927.18645-27-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- sha1-name.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sha1-name.c b/sha1-name.c index 6b53ea2eeb..64a50d1291 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -12,6 +12,7 @@ #include "packfile.h" #include "object-store.h" #include "repository.h" +#include "submodule.h" #include "midx.h" #include "commit-reach.h" @@ -1797,7 +1798,7 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, oc->path = xstrdup(cp); if (!repo->index->cache) - repo_read_index(the_repository); + repo_read_index(repo); pos = index_name_pos(repo->index, cp, namelen); if (pos < 0) pos = -pos - 1; @@ -1842,6 +1843,14 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, new_filename = resolve_relative_path(repo, filename); if (new_filename) filename = new_filename; + /* + * NEEDSWORK: Eventually get_tree_entry*() should + * learn to take struct repository directly and we + * would not need to inject submodule odb to the + * in-core odb. + */ + if (repo != the_repository) + add_to_alternates_memory(repo->objects->odb->path); if (flags & GET_OID_FOLLOW_SYMLINKS) { ret = get_tree_entry_follow_symlinks(&tree_oid, filename, oid, &oc->symlink_path, From patchwork Sat Mar 30 11:19:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878365 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 1E85513B5 for ; Sat, 30 Mar 2019 11:22:46 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0A42E28FEB for ; Sat, 30 Mar 2019 11:22:46 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F2F5F2900A; Sat, 30 Mar 2019 11:22:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9EC0828FEB for ; Sat, 30 Mar 2019 11:22:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730809AbfC3LWo (ORCPT ); Sat, 30 Mar 2019 07:22:44 -0400 Received: from mail-pl1-f193.google.com ([209.85.214.193]:33289 "EHLO mail-pl1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730808AbfC3LWo (ORCPT ); Sat, 30 Mar 2019 07:22:44 -0400 Received: by mail-pl1-f193.google.com with SMTP id t16so342927plo.0 for ; Sat, 30 Mar 2019 04:22:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hKjJIvSfH8MGf6h4/kuMUZwGHNx2sxD8tRhAQUc8aZA=; b=IUDLNowA/JkQg9RtYkmqJ5zqCtXPiFWry1mKhLRN/sfoGd25FBY1xPmcTjMdn9mQkd 85SuMPs1soWmCO/5Sl63FL2+Ab41/LDHTa7tATv3JQjilj0cgHTSVmbBlswTsE9kIs27 tbENckJmZBasWLS0kqWRvdej5Wa7mwT0Y/puVMBOng5NBVM+8OysSCLunxrMbvY3TkKj xVC/W74y/0wVdxBezbl/BZIpQ7eptXy9va4/lgcCQdqAnawFkZFDVrCumddCDZ6BxjIp BjaWEvBB9shLjgPcbd5WMX3s8srm5ZCYlIZoXqwol+xWW+/eNOUd3n1KdtwmAYxuoh5i dHpQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hKjJIvSfH8MGf6h4/kuMUZwGHNx2sxD8tRhAQUc8aZA=; b=KU1PhUy3lWOM/Ur/Ag8QxEq8sWS6V24Pnt5cTWRDrORHTtJaASmVjf73SsoCa7t1DT qv+vNhp0ZUq//XfzjQOmWl/vpWoSOzp9SE/b5bmc44fpYU5sPHJ0HrCeSPOOFwtv+szp lTL5XANnnIJ0n1bcr3cqidmgwJTqJI9aJsnJ9NQEri0Fwg7NAzLKwkb/ON7E9lAjuutB OugZ+zCdVCBtEo+8cBHw/CU2G9IWjsa0sz8OywGkXLl3Pjop4kTR936e+pvuaUWQzJUe Evmjsjh4slPwf8UogCoYsK8kMU24xVJT6jvagiL1m2LNFQZ/IGiNnd5CX/iSS8/4Wa2E Yl6Q== X-Gm-Message-State: APjAAAVDjsfFBJvRYvkEP8GWgD+JyFKS5Vag8R6fEnBLCRoN1y0YnVKu 6ucmp3lnQ5Qa3CrYy7MP6p2utlNf X-Google-Smtp-Source: APXvYqwHE9c932SAYO4WfeS3LFARaDrYT9GdvR4Ch4sl28Wtx1eWekFm/rMsoYUoVi9i+gV5v2DnMg== X-Received: by 2002:a17:902:9a5:: with SMTP id 34mr54428060pln.287.1553944963390; Sat, 30 Mar 2019 04:22:43 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id 13sm5808564pfi.172.2019.03.30.04.22.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:42 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:38 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 27/31] sha1-name.c: add repo_get_oid() Date: Sat, 30 Mar 2019 18:19:23 +0700 Message-Id: <20190330111927.18645-28-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 3 ++- sha1-name.c | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cache.h b/cache.h index 2149dc4f56..f6e87194d0 100644 --- a/cache.h +++ b/cache.h @@ -1380,7 +1380,8 @@ enum get_oid_result { */ }; -extern int get_oid(const char *str, struct object_id *oid); +int repo_get_oid(struct repository *r, const char *str, struct object_id *oid); +#define get_oid(str, oid) repo_get_oid(the_repository, str, oid) extern int get_oid_commit(const char *str, struct object_id *oid); extern int get_oid_committish(const char *str, struct object_id *oid); extern int get_oid_tree(const char *str, struct object_id *oid); diff --git a/sha1-name.c b/sha1-name.c index 64a50d1291..953df0d692 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1573,10 +1573,10 @@ int strbuf_check_branch_ref(struct strbuf *sb, const char *name) * This is like "get_oid_basic()", except it allows "object ID expressions", * notably "xyz^" for "parent of xyz" */ -int get_oid(const char *name, struct object_id *oid) +int repo_get_oid(struct repository *r, const char *name, struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, name, 0, oid, &unused); + return get_oid_with_context(r, name, 0, oid, &unused); } From patchwork Sat Mar 30 11:19:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878367 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 AA3CA139A for ; Sat, 30 Mar 2019 11:22:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9623728FEB for ; Sat, 30 Mar 2019 11:22:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8A8312900A; Sat, 30 Mar 2019 11:22: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 A5E3029000 for ; Sat, 30 Mar 2019 11:22:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730810AbfC3LWt (ORCPT ); Sat, 30 Mar 2019 07:22:49 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:38763 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730471AbfC3LWt (ORCPT ); Sat, 30 Mar 2019 07:22:49 -0400 Received: by mail-pf1-f194.google.com with SMTP id 10so2262490pfo.5 for ; Sat, 30 Mar 2019 04:22:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kMiXl1MxKUOko0eG2ftuaNwMJYbmJV8Dmae7pks8mVA=; b=l7iVkOTAzeZmrsPhIbk3BID0EKFgV/JPwQ762zx6CbyPvTLPGSfyoQ31NJdOpD60BV b4moDK9PZ0qO32zeVS9XTd9SD2arSl75uK2Nlg0ZnKkfiY7zsNcDuxhQHBfPdLTcFzmm fvfazPbR1tSUHwqyuQu0k6vycd0vFL9Fe4T7alFA7xbltLQLp83CVBGuhfsJ+BJrRJv+ qzyf0tZQn6OE0EMW1HEs7OczIo83NcJRB60SGxC+Xe10aTolhoWf07EAOtaQXZ2oRpko WqMwGt9rN2YvPUT36wa/RV+sNMlySKDth8FqJyySRkLTfsCmSThj6yQNvTzNML6BmrMf LWlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kMiXl1MxKUOko0eG2ftuaNwMJYbmJV8Dmae7pks8mVA=; b=kTUNn3QbLZenhtAjuQPAkf7F9ZMNvha1w/l2C+X/DsX/uIg3p8FuPg8qUjtPLEKJLy 0HmD0mAOn2+GqkkrBjyXoQ55SU47JwoXgo/ZIfFOurkwgsnfibydZD2oDMcNuei9mvor aC3G7YGm4ouahN28EkF/AEdjdl1D45xTNIcca96S2oFlddSUFfQ1C/vU89bHDqaklrXO P9Zp5bkBxAgY+Kj2QdqNiNGtiWdLQYznmHZmy96PVxmzj2vfOoBppA5YZEGq/69JApmE SrS+baQoZnPWA8HVKrXtwFGmQecofBR27jppxIOM+ziP9qE/9m3/aEqIuTwV7JVrkA16 gRfA== X-Gm-Message-State: APjAAAVF9csBtPb6E6c4GfVovQ8rv+mie59CUPYjlnj7AjSP8ZsrYwXi TKWQM6KxLfajOcHjMLE1R7B0heCb X-Google-Smtp-Source: APXvYqwQ9JXmRD0kp4WmAoAdecgmpMsS7PRMwz0Ipcaxd5co2jePGTNx79lMq2zn+0bvM2IZsURjGg== X-Received: by 2002:a65:63c2:: with SMTP id n2mr14683848pgv.439.1553944968405; Sat, 30 Mar 2019 04:22:48 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id p3sm10637975pfp.136.2019.03.30.04.22.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:47 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:43 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 28/31] submodule-config.c: use repo_get_oid for reading .gitmodules Date: Sat, 30 Mar 2019 18:19:24 +0700 Message-Id: <20190330111927.18645-29-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Since 76e9bdc437 (submodule: support reading .gitmodules when it's not in the working tree - 2018-10-25), every time you do git grep --recurse-submodules you are likely to see one warning line per submodule (unless all those submodules also have submodules). On a superproject with plenty of submodules (I've seen one with 67) this is really annoying. The warning was there because we could not resolve extended SHA-1 syntax on a submodule. We can now. Make use of the new API and get rid of the warning. It would be even better if config_with_options() supports multiple repositories too. But one step at a time. Signed-off-by: Nguyễn Thái Ngọc Duy --- submodule-config.c | 20 +++++++------------- t/t7814-grep-recurse-submodules.sh | 6 +----- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/submodule-config.c b/submodule-config.c index 66653e86b9..4264ee216f 100644 --- a/submodule-config.c +++ b/submodule-config.c @@ -625,23 +625,16 @@ static void config_from_gitmodules(config_fn_t fn, struct repository *repo, void const struct config_options opts = { 0 }; struct object_id oid; char *file; + char *oidstr = NULL; file = repo_worktree_path(repo, GITMODULES_FILE); if (file_exists(file)) { config_source.file = file; - } else if (repo->submodule_prefix) { - /* - * When get_oid and config_with_options, used below, - * become able to work on a specific repository, this - * warning branch can be removed. - */ - warning("nested submodules without %s in the working tree are not supported yet", - GITMODULES_FILE); - goto out; - } else if (get_oid(GITMODULES_INDEX, &oid) >= 0) { - config_source.blob = GITMODULES_INDEX; - } else if (get_oid(GITMODULES_HEAD, &oid) >= 0) { - config_source.blob = GITMODULES_HEAD; + } else if (repo_get_oid(repo, GITMODULES_INDEX, &oid) >= 0 || + repo_get_oid(repo, GITMODULES_HEAD, &oid) >= 0) { + config_source.blob = oidstr = xstrdup(oid_to_hex(&oid)); + if (repo != the_repository) + add_to_alternates_memory(repo->objects->odb->path); } else { goto out; } @@ -649,6 +642,7 @@ static void config_from_gitmodules(config_fn_t fn, struct repository *repo, void config_with_options(fn, data, &config_source, &opts); out: + free(oidstr); free(file); } } diff --git a/t/t7814-grep-recurse-submodules.sh b/t/t7814-grep-recurse-submodules.sh index fa475d52fa..134a694516 100755 --- a/t/t7814-grep-recurse-submodules.sh +++ b/t/t7814-grep-recurse-submodules.sh @@ -380,11 +380,7 @@ test_expect_success 'grep --recurse-submodules should pass the pattern type alon fi ' -# Recursing down into nested submodules which do not have .gitmodules in their -# working tree does not work yet. This is because config_from_gitmodules() -# uses get_oid() and the latter is still not able to get objects from an -# arbitrary repository (the nested submodule, in this case). -test_expect_failure 'grep --recurse-submodules with submodules without .gitmodules in the working tree' ' +test_expect_success 'grep --recurse-submodules with submodules without .gitmodules in the working tree' ' test_when_finished "git -C submodule checkout .gitmodules" && rm submodule/.gitmodules && git grep --recurse-submodules -e "(.|.)[\d]" >actual && From patchwork Sat Mar 30 11:19:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878369 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 7EF9813B5 for ; Sat, 30 Mar 2019 11:22:56 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6A44428FEB for ; Sat, 30 Mar 2019 11:22:56 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5EAAA2900A; Sat, 30 Mar 2019 11:22:56 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EDA8E28FEB for ; Sat, 30 Mar 2019 11:22:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730634AbfC3LWy (ORCPT ); Sat, 30 Mar 2019 07:22:54 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:36781 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730471AbfC3LWy (ORCPT ); Sat, 30 Mar 2019 07:22:54 -0400 Received: by mail-pg1-f196.google.com with SMTP id 85so2438585pgc.3 for ; Sat, 30 Mar 2019 04:22:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=WiTcqjXHjS0GDmkL0Ayotb8v1V1CzkGfFwAIuM5mr9Q=; b=RAX7GIj8DB4AP+vtj6a47L2WJYwpJlYoSbzand/wrZyGN10VRaAVH5lEGhsMev+lKz m+TOZQ7VuZgbAux7arrV7Bmi+48J0excc+LDaOQjnRa1Z7oWaqLVhBGTVtoydw0t0ac7 dS76tstdgSuWmuZZg4Anfo6k8ZAAJN8hJrH+FI0PyW6dxmsVrnryI/ZoeL2mpAhixT/B 9dY515F5Sz8MWNeNM2GrFgFMYXqs/40hYl5PXQFbl0Ya0RDUOQgV29LiEhPcqx4mTgCx I7oEOO6b8xwTaOSDIsO4SZbeweTojoK0tn29aT4bZk/bkBKhw0Q1nptbGL/4kgupdDFW IAPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=WiTcqjXHjS0GDmkL0Ayotb8v1V1CzkGfFwAIuM5mr9Q=; b=YVgfJ0SucRDCe+0FONxysyU3n2hSU7WD6nGjQH1ZOFyeW2Nlk07t7vBuGRdFGWewSA GK1Bq4LNzEX5lnUw6vdcjBcP0QhUdP1WoqJG5JpBBcRzBrUUGfwKDI4TBL5kc1xvDYvs PZPrGHOTwsExdq5rKKRK98KwOP5TcTKpogzXKhk5x97Fd4ySV3C23RcCrR8kYIgTR9UO 3MHFx0h/gqLcmIzn/G9PZXLCac/bc0zxTomMQcGs7cYaJAtwUNKofxaNnSikd8m5ez/X n48BQDbC8zo0K8jqaf2Z/tHxnaaMUAbqnR39yiZsWjHNVRe8hRDcTRvULKWHWVmRQXGU OqWg== X-Gm-Message-State: APjAAAXQ2qx7IyqSVHC9WBsQGAdBq4JCP3TWLP4pMn/UNLvJ5vHT6wxT kh4+wdyhp5vi8DnVDrwwLcUHY73b X-Google-Smtp-Source: APXvYqzAY3QGpDy8G0KOFqQr4pPhnNIiGf9lVRDACyZmnUNqvu9AaXvWKCAqyqjJX/65+89OF7LCjg== X-Received: by 2002:a63:ed11:: with SMTP id d17mr50563845pgi.211.1553944973247; Sat, 30 Mar 2019 04:22:53 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id o5sm19479549pfa.135.2019.03.30.04.22.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:52 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:48 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 29/31] sha1-name.c: remove the_repo from maybe_die_on_misspelt_object_name Date: Sat, 30 Mar 2019 18:19:25 +0700 Message-Id: <20190330111927.18645-30-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 4 +++- setup.c | 7 ++++--- sha1-name.c | 6 ++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/cache.h b/cache.h index f6e87194d0..3718b3db8a 100644 --- a/cache.h +++ b/cache.h @@ -1387,7 +1387,9 @@ extern int get_oid_committish(const char *str, struct object_id *oid); extern int get_oid_tree(const char *str, struct object_id *oid); extern int get_oid_treeish(const char *str, struct object_id *oid); extern int get_oid_blob(const char *str, struct object_id *oid); -extern void maybe_die_on_misspelt_object_name(const char *name, const char *prefix); +void maybe_die_on_misspelt_object_name(struct repository *repo, + const char *name, + const char *prefix); extern enum get_oid_result get_oid_with_context(struct repository *repo, const char *str, unsigned flags, struct object_id *oid, struct object_context *oc); diff --git a/setup.c b/setup.c index d0c958c3b2..8dcb4631f7 100644 --- a/setup.c +++ b/setup.c @@ -164,7 +164,8 @@ int check_filename(const char *prefix, const char *arg) die_errno(_("failed to stat '%s'"), arg); } -static void NORETURN die_verify_filename(const char *prefix, +static void NORETURN die_verify_filename(struct repository *r, + const char *prefix, const char *arg, int diagnose_misspelt_rev) { @@ -179,7 +180,7 @@ static void NORETURN die_verify_filename(const char *prefix, * let maybe_die_on_misspelt_object_name() even trigger. */ if (!(arg[0] == ':' && !isalnum(arg[1]))) - maybe_die_on_misspelt_object_name(arg, prefix); + maybe_die_on_misspelt_object_name(r, arg, prefix); /* ... or fall back the most general message. */ die(_("ambiguous argument '%s': unknown revision or path not in the working tree.\n" @@ -234,7 +235,7 @@ void verify_filename(const char *prefix, die(_("option '%s' must come before non-option arguments"), arg); if (looks_like_pathspec(arg) || check_filename(prefix, arg)) return; - die_verify_filename(prefix, arg, diagnose_misspelt_rev); + die_verify_filename(the_repository, prefix, arg, diagnose_misspelt_rev); } /* diff --git a/sha1-name.c b/sha1-name.c index 953df0d692..b94d381bef 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1885,11 +1885,13 @@ static enum get_oid_result get_oid_with_context_1(struct repository *repo, * exist in 'HEAD'" when given "HEAD:doc", or it may return in which case * you have a chance to diagnose the error further. */ -void maybe_die_on_misspelt_object_name(const char *name, const char *prefix) +void maybe_die_on_misspelt_object_name(struct repository *r, + const char *name, + const char *prefix) { struct object_context oc; struct object_id oid; - get_oid_with_context_1(the_repository, name, GET_OID_ONLY_TO_DIE, + get_oid_with_context_1(r, name, GET_OID_ONLY_TO_DIE, prefix, &oid, &oc); } From patchwork Sat Mar 30 11:19:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878371 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 8CC1A13B5 for ; Sat, 30 Mar 2019 11:23:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 74F9729000 for ; Sat, 30 Mar 2019 11:23:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 66C4628FEB; Sat, 30 Mar 2019 11:23: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 DCBAD28FEB for ; Sat, 30 Mar 2019 11:23:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730766AbfC3LW7 (ORCPT ); Sat, 30 Mar 2019 07:22:59 -0400 Received: from mail-pg1-f196.google.com ([209.85.215.196]:34352 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730471AbfC3LW7 (ORCPT ); Sat, 30 Mar 2019 07:22:59 -0400 Received: by mail-pg1-f196.google.com with SMTP id v12so2445356pgq.1 for ; Sat, 30 Mar 2019 04:22:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=h4UsmkkHNE/w67i9pZNTRUVeoBYpvfa1184swHxAb98=; b=o/ttobVKJjpQ6XugtGbnlu7iT8FPXqv1bxD6+D3XAlCRKkO0YkoFsfALRnUdImWdSs yf7akBlS4hzh5V8w5eKg1dnxON9COPqfSXRzvZx5HwjjYKW6ql8XjGOA+icKyoC2LC0M GKqMhOAD9OTwTeqRNIntiokrz2pscjc8SU8uB7AKqETYpUNqxUl3yLDxtsWWVt2iRZ3B WLHosj2z3e09La9n97CPaD4i2nmj6jZMR/Ci9NO8ZwYP5rVBjKrWPSM80q/p6XWJaT9g Zmwjff+fgPS2dPN3Xw7C6S1XmwbwNit8Y5rgViCgEmKgxNJ1UVX0AYW0rVrUGbQ2FOup rWGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=h4UsmkkHNE/w67i9pZNTRUVeoBYpvfa1184swHxAb98=; b=dFGzG2wRoOUoA4/gk2QTOZh4kBpH9S8CH7+Q2AWL8tUAVD2Gs8/ebzJ+VP1RWBJvb0 vIPoHasyyZ+O4nG4GMmdR7fP8iWDFPGjU5jnL3qnWfll9Kets5CglkHCWHLmJdANV/nl AdAiSJdQ0qY9WfqN4qIKbhO0YVYznpCyvSyKs9yMEWXvbiQv6FxgLT5HiLJdDLXaL23h keWsM6Yd/Gl2FDwaXW2c43872v3ESp163sRiIUXZJmFcT4m1Nuh+00a86eYM7ZYh1rwo zOWU9B+eCzZLfeOew+wKiV7BatioK0J3iZbjepVYv7ZIMeRiKlKm9h6fjmiuB4oKbCrH RwYw== X-Gm-Message-State: APjAAAVVfNS/7e8b4REmW7T201nZPWhdBtPlCpowSP33ZAJ045XB8YV4 5Dj/g6CpUEqnb/rcbvucxz8PXkxy X-Google-Smtp-Source: APXvYqwz5t/nUarYQ+S/uyoPp6QF3gTX+PKmxqwa774DoUqp2+RkjIV3x0gHW3u4wRJu7rwE0F8L1Q== X-Received: by 2002:a65:5a81:: with SMTP id c1mr49650651pgt.391.1553944978475; Sat, 30 Mar 2019 04:22:58 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id z189sm6480400pfb.146.2019.03.30.04.22.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:22:57 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:53 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 30/31] sha1-name.c: remove the_repo from other get_oid_* Date: Sat, 30 Mar 2019 18:19:26 +0700 Message-Id: <20190330111927.18645-31-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 18 ++++++++++++------ sha1-name.c | 35 ++++++++++++++++++++--------------- 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/cache.h b/cache.h index 3718b3db8a..871a167bf8 100644 --- a/cache.h +++ b/cache.h @@ -1381,12 +1381,11 @@ enum get_oid_result { }; int repo_get_oid(struct repository *r, const char *str, struct object_id *oid); -#define get_oid(str, oid) repo_get_oid(the_repository, str, oid) -extern int get_oid_commit(const char *str, struct object_id *oid); -extern int get_oid_committish(const char *str, struct object_id *oid); -extern int get_oid_tree(const char *str, struct object_id *oid); -extern int get_oid_treeish(const char *str, struct object_id *oid); -extern int get_oid_blob(const char *str, struct object_id *oid); +int repo_get_oid_commit(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_committish(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_tree(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_treeish(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_blob(struct repository *r, const char *str, struct object_id *oid); void maybe_die_on_misspelt_object_name(struct repository *repo, const char *name, const char *prefix); @@ -1394,6 +1393,13 @@ extern enum get_oid_result get_oid_with_context(struct repository *repo, const c unsigned flags, struct object_id *oid, struct object_context *oc); +#define get_oid(str, oid) repo_get_oid(the_repository, str, oid) +#define get_oid_commit(str, oid) repo_get_oid_commit(the_repository, str, oid) +#define get_oid_committish(str, oid) repo_get_oid_committish(the_repository, str, oid) +#define get_oid_tree(str, oid) repo_get_oid_tree(the_repository, str, oid) +#define get_oid_treeish(str, oid) repo_get_oid_treeish(the_repository, str, oid) +#define get_oid_blob(str, oid) repo_get_oid_blob(the_repository, str, oid) + typedef int each_abbrev_fn(const struct object_id *oid, void *); int repo_for_each_abbrev(struct repository *r, const char *prefix, each_abbrev_fn, void *); #define for_each_abbrev(prefix, fn, data) repo_for_each_abbrev(the_repository, prefix, fn, data) diff --git a/sha1-name.c b/sha1-name.c index b94d381bef..d49496397d 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1590,43 +1590,48 @@ int repo_get_oid(struct repository *r, const char *name, struct object_id *oid) * commit-ish. It is merely to give a hint to the disambiguation * machinery. */ -int get_oid_committish(const char *name, struct object_id *oid) +int repo_get_oid_committish(struct repository *r, + const char *name, + struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, - name, GET_OID_COMMITTISH, + return get_oid_with_context(r, name, GET_OID_COMMITTISH, oid, &unused); } -int get_oid_treeish(const char *name, struct object_id *oid) +int repo_get_oid_treeish(struct repository *r, + const char *name, + struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, - name, GET_OID_TREEISH, + return get_oid_with_context(r, name, GET_OID_TREEISH, oid, &unused); } -int get_oid_commit(const char *name, struct object_id *oid) +int repo_get_oid_commit(struct repository *r, + const char *name, + struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, - name, GET_OID_COMMIT, + return get_oid_with_context(r, name, GET_OID_COMMIT, oid, &unused); } -int get_oid_tree(const char *name, struct object_id *oid) +int repo_get_oid_tree(struct repository *r, + const char *name, + struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, - name, GET_OID_TREE, + return get_oid_with_context(r, name, GET_OID_TREE, oid, &unused); } -int get_oid_blob(const char *name, struct object_id *oid) +int repo_get_oid_blob(struct repository *r, + const char *name, + struct object_id *oid) { struct object_context unused; - return get_oid_with_context(the_repository, - name, GET_OID_BLOB, + return get_oid_with_context(r, name, GET_OID_BLOB, oid, &unused); } From patchwork Sat Mar 30 11:19:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Duy Nguyen X-Patchwork-Id: 10878373 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 745DB139A for ; Sat, 30 Mar 2019 11:23:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 60B7428FEB for ; Sat, 30 Mar 2019 11:23:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5505E2900A; Sat, 30 Mar 2019 11:23: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 C3D6B28FEB for ; Sat, 30 Mar 2019 11:23:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730767AbfC3LXE (ORCPT ); Sat, 30 Mar 2019 07:23:04 -0400 Received: from mail-pf1-f194.google.com ([209.85.210.194]:45188 "EHLO mail-pf1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730471AbfC3LXE (ORCPT ); Sat, 30 Mar 2019 07:23:04 -0400 Received: by mail-pf1-f194.google.com with SMTP id e24so2244841pfi.12 for ; Sat, 30 Mar 2019 04:23:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=xHihulZqB9t7pgfq8tjomSTv/8DEfubw/edGbtbh7Pk=; b=YoRZ+KKVXMbi9tpM0H57m4NaWb4YQdyu/IeuHASamjHbxFDHjke2qlw5zx5KyC+bjR onuS1E4VZrlJ57cpH7qqgORSufAsCQ8KUhksL3izrWmoc8uN4Zb1RMp4JhGDd55chifL oiwe5HKh7ww1ZwbRKT5ht9DjGOUZXPPMg2bL3yMKesNCoyMr6Ky1+vCaqRm8tj0wfX6d qde0fyG8YeIg7ayXT49shEISeYhA4ekiiAoL4NvZyIGlu7PJRkb3QYEXqoFucsoGdM0L JQH1eTH4rNFXpioNth/qvKUvxNa6p5r7SBlfM550Of8BgG1yONyqgAiYmS799INULpsQ +E9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=xHihulZqB9t7pgfq8tjomSTv/8DEfubw/edGbtbh7Pk=; b=QXwVsMwXIhT6WVe0QYDzeSbJoxHCaGSoXj8I1zYHjFTlWkQRMxjqFqLXo70p5fscpi W+6soQYXGg0zukbpJok1du3zjCq7Xt20qAhC8Bt+3M+HXrT5nNjULb6+DTSYe1zcbXYa h37/iYY4/i30/QDQKnaRl+RztOVeDhfxd4OBuTT8mtyo+FUQIBmNpF3gO5mq/FtxxdSS opJGef6pRQcKjDDwJckl/lAKPMgYFDxCwrlU+nJ1H736hnMb0IYeUnpQzpsr6eGOOplZ 5IzAVqEkxe+Aahf47wsWlPTc9jv+4pPyRMBai7rmn8kTyWL3GyFFNyaqhFcxXwqTc+Tr eG5A== X-Gm-Message-State: APjAAAX4MVFxrET1oF8JzM6t3FoJ1IKd3Kr0f6tMQWiRT9uXX9h32LWc 9CsTPEH41G5aqbip90v9eNYmlPgn X-Google-Smtp-Source: APXvYqxsY1AU2gebN98s4m0LLJ9DFgoF8xfKC4LWpSWK78bK51Du/tSzua8/QGhWrxYJBjR+AAe+dw== X-Received: by 2002:a65:664a:: with SMTP id z10mr7479447pgv.443.1553944983484; Sat, 30 Mar 2019 04:23:03 -0700 (PDT) Received: from ash ([171.236.209.43]) by smtp.gmail.com with ESMTPSA id a17sm7051085pgd.30.2019.03.30.04.23.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 30 Mar 2019 04:23:02 -0700 (PDT) Received: by ash (sSMTP sendmail emulation); Sat, 30 Mar 2019 18:22:58 +0700 From: =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41jIER1eQ==?= To: git@vger.kernel.org Cc: Stefan Beller , Junio C Hamano , =?utf-8?b?Tmd1eeG7hW4gVGjDoWkgTmfhu41j?= =?utf-8?b?IER1eQ==?= Subject: [PATCH 31/31] sha1-name.c: remove the_repo from get_oid_mb() Date: Sat, 30 Mar 2019 18:19:27 +0700 Message-Id: <20190330111927.18645-32-pclouds@gmail.com> X-Mailer: git-send-email 2.21.0.479.g47ac719cd3 In-Reply-To: <20190330111927.18645-1-pclouds@gmail.com> References: <20190330111927.18645-1-pclouds@gmail.com> MIME-Version: 1.0 Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Nguyễn Thái Ngọc Duy --- cache.h | 3 ++- sha1-name.c | 18 +++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/cache.h b/cache.h index 871a167bf8..9a600a8b50 100644 --- a/cache.h +++ b/cache.h @@ -1386,6 +1386,7 @@ int repo_get_oid_committish(struct repository *r, const char *str, struct object int repo_get_oid_tree(struct repository *r, const char *str, struct object_id *oid); int repo_get_oid_treeish(struct repository *r, const char *str, struct object_id *oid); int repo_get_oid_blob(struct repository *r, const char *str, struct object_id *oid); +int repo_get_oid_mb(struct repository *r, const char *str, struct object_id *oid); void maybe_die_on_misspelt_object_name(struct repository *repo, const char *name, const char *prefix); @@ -1399,6 +1400,7 @@ extern enum get_oid_result get_oid_with_context(struct repository *repo, const c #define get_oid_tree(str, oid) repo_get_oid_tree(the_repository, str, oid) #define get_oid_treeish(str, oid) repo_get_oid_treeish(the_repository, str, oid) #define get_oid_blob(str, oid) repo_get_oid_blob(the_repository, str, oid) +#define get_oid_mb(str, oid) repo_get_oid_mb(the_repository, str, oid) typedef int each_abbrev_fn(const struct object_id *oid, void *); int repo_for_each_abbrev(struct repository *r, const char *prefix, each_abbrev_fn, void *); @@ -1486,7 +1488,6 @@ int repo_interpret_branch_name(struct repository *r, unsigned allowed); #define interpret_branch_name(str, len, buf, allowed) \ repo_interpret_branch_name(the_repository, str, len, buf, allowed) -extern int get_oid_mb(const char *str, struct object_id *oid); extern int validate_headref(const char *ref); diff --git a/sha1-name.c b/sha1-name.c index d49496397d..cf314ebb29 100644 --- a/sha1-name.c +++ b/sha1-name.c @@ -1338,7 +1338,9 @@ static int interpret_nth_prior_checkout(struct repository *r, return retval; } -int get_oid_mb(const char *name, struct object_id *oid) +int repo_get_oid_mb(struct repository *r, + const char *name, + struct object_id *oid) { struct commit *one, *two; struct commit_list *mbs; @@ -1348,27 +1350,29 @@ int get_oid_mb(const char *name, struct object_id *oid) dots = strstr(name, "..."); if (!dots) - return get_oid(name, oid); + return repo_get_oid(r, name, oid); if (dots == name) - st = get_oid("HEAD", &oid_tmp); + st = repo_get_oid(r, "HEAD", &oid_tmp); else { struct strbuf sb; strbuf_init(&sb, dots - name); strbuf_add(&sb, name, dots - name); - st = get_oid_committish(sb.buf, &oid_tmp); + st = repo_get_oid_committish(r, sb.buf, &oid_tmp); strbuf_release(&sb); } if (st) return st; - one = lookup_commit_reference_gently(the_repository, &oid_tmp, 0); + one = lookup_commit_reference_gently(r, &oid_tmp, 0); if (!one) return -1; - if (get_oid_committish(dots[3] ? (dots + 3) : "HEAD", &oid_tmp)) + if (repo_get_oid_committish(r, dots[3] ? (dots + 3) : "HEAD", &oid_tmp)) return -1; - two = lookup_commit_reference_gently(the_repository, &oid_tmp, 0); + two = lookup_commit_reference_gently(r, &oid_tmp, 0); if (!two) return -1; + if (r != the_repository) + BUG("sorry get_merge_bases() can't take struct repository yet"); mbs = get_merge_bases(one, two); if (!mbs || mbs->next) st = -1;