From patchwork Tue Dec 12 07:00:46 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13488574 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="lXQz73RQ"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="bD1ebJYC" Received: from wout3-smtp.messagingengine.com (wout3-smtp.messagingengine.com [64.147.123.19]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 50E2AEA for ; Mon, 11 Dec 2023 23:00:50 -0800 (PST) Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id BFE913200B0D for ; Tue, 12 Dec 2023 02:00:49 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Tue, 12 Dec 2023 02:00:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc :content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm1; t=1702364449; x=1702450849; bh=uni2VhHKzH YX2vT2EIiLdh+SES9Aqq3D9YONPvF6eQQ=; b=lXQz73RQSRUqQ9sxZmCI7rivsZ jkExxPAEZ+c5OhdXO029c/ujt53LomInHTZmu1ffzgpIVM04viSHPDJgH6+nfwyA PQ/NqKtvVYgviEUOEbl301a25TmrSyoC1D4hoBu7Ja7Yr8e12bdVyPwUXMbM9GFe snROwf7b9zFTKjDZ10Fy7RfBlAOMsThIfjmkmBWgLLPwu2BJd2qi3h+WT9Wbmoda rW3VyDk4ieAw/NCNisJz/GUI+sS5pRWuSuU+lUDipxgfRqa9la2GSHjdeCqGrMjZ nL6VJB2l1F440EmOTg9o6r4vi99qWmuM95nFVFETE7MnOnbp7dvNQKYiF0Bw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1702364449; x=1702450849; bh=uni2VhHKzHYX2vT2EIiLdh+SES9A qq3D9YONPvF6eQQ=; b=bD1ebJYCv94HU9544ncD5tAAxqIdEIjHZeEEF8CnpL6L 661z+6nECIX7GEA51OleW96Ohx/CB7F5mzQaz2wcrbTgsGjfoNaL8bccGVzBT29U c0LXqsSYezlr4INX4u7U4f9AGoHjqTixMdmsp0rq3iUF88gl31l3KjzmkOSYdHSq bwJTZQebPupSt3fDCg0oWQyP65UXh2lJhvTZpsXKpfyViwqv3PRbVfNRFFLBsH5i wogt/0x/c9es03ZE1eBcBxoO4SMll3FX1/T3FCFRosT5F7xwW/qADgslQYacL9FZ duYV/D9d0Rf0xO2XeVjHkkr3uueFbcUKpRjEyxTnQw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrudelfedguddtfecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepfffhvffukfhfgggtuggjsehgtd erredttddvnecuhfhrohhmpefrrghtrhhitghkucfuthgvihhnhhgrrhguthcuoehpshes phhkshdrihhmqeenucggtffrrghtthgvrhhnpeehgefhtdefueffheekgfffudelffejtd fhvdejkedthfehvdelgfetgfdvtedthfenucevlhhushhtvghrufhiiigvpedtnecurfgr rhgrmhepmhgrihhlfhhrohhmpehpshesphhkshdrihhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 12 Dec 2023 02:00:48 -0500 (EST) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 94eb4b6d (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Tue, 12 Dec 2023 06:59:09 +0000 (UTC) Date: Tue, 12 Dec 2023 08:00:46 +0100 From: Patrick Steinhardt To: git@vger.kernel.org Subject: [PATCH v2 2/7] setup: allow skipping creation of the refdb Message-ID: <40005ac1f14c8d0c1fc474351554ebe4fdec1cf4.1702361370.git.ps@pks.im> References: Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Allow callers to skip creation of the reference database via a new flag `INIT_DB_SKIP_REFDB`, which is required for git-clone(1) so that we can create it at a later point once the object format has been discovered from the remote repository. Note that we also uplift the call to `create_reference_database()` into `init_db()`, which makes it easier to handle the new flag for us. This changes the order in which we do initialization so that we now set up the Git configuration before we create the reference database. In practice this move should not result in any change in behaviour. Signed-off-by: Patrick Steinhardt --- setup.c | 13 +++++-------- setup.h | 5 +++-- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/setup.c b/setup.c index 865cfe6743..d6a1c59b7b 100644 --- a/setup.c +++ b/setup.c @@ -1949,11 +1949,9 @@ static void create_reference_database(const char *initial_branch, int quiet) static int create_default_files(const char *template_path, const char *original_git_dir, - const char *initial_branch, const struct repository_format *fmt, int prev_bare_repository, - int init_shared_repository, - int quiet) + int init_shared_repository) { struct stat st1; struct strbuf buf = STRBUF_INIT; @@ -2024,7 +2022,6 @@ static int create_default_files(const char *template_path, adjust_shared_perm(get_git_dir()); } - create_reference_database(initial_branch, quiet); initialize_repository_version(fmt->hash_algo, 0); /* Check filemode trustability */ @@ -2184,11 +2181,11 @@ int init_db(const char *git_dir, const char *real_git_dir, validate_hash_algorithm(&repo_fmt, hash); reinit = create_default_files(template_dir, original_git_dir, - initial_branch, &repo_fmt, - prev_bare_repository, - init_shared_repository, - flags & INIT_DB_QUIET); + &repo_fmt, prev_bare_repository, + init_shared_repository); + if (!(flags & INIT_DB_SKIP_REFDB)) + create_reference_database(initial_branch, flags & INIT_DB_QUIET); create_object_directory(); if (get_shared_repository()) { diff --git a/setup.h b/setup.h index b48cf1c43b..cbf538286b 100644 --- a/setup.h +++ b/setup.h @@ -169,8 +169,9 @@ int verify_repository_format(const struct repository_format *format, */ void check_repository_format(struct repository_format *fmt); -#define INIT_DB_QUIET 0x0001 -#define INIT_DB_EXIST_OK 0x0002 +#define INIT_DB_QUIET (1 << 0) +#define INIT_DB_EXIST_OK (1 << 1) +#define INIT_DB_SKIP_REFDB (1 << 2) int init_db(const char *git_dir, const char *real_git_dir, const char *template_dir, int hash_algo,