From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from fhigh-b1-smtp.messagingengine.com (fhigh-b1-smtp.messagingengine.com [202.12.124.152]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 140D01474DA for ; Mon, 2 Jun 2025 10:27:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=202.12.124.152 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748860048; cv=none; b=B1N86X3sqs62Nnw6gUD5X6IZmaCzQZpC++wMXZlMAXo2R89/2nY6UlYc+rT50ezuvbKewI1qFYfgBhFlcNfLiB9BtYH+1ky+10BCqHxTYGQ6uAoH8ZYA6FgDItC5QbqcM5KG3IVG3a+PyUaxagbFWXuTBe6he2zdXzoBcEdCN9M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1748860048; c=relaxed/simple; bh=x6O13nynBJ5qQWLbkPSApO98OoaZmAVJI2NckLRo/WQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fax5FfkpedW6w2r1nUR3BDDEF3daOKBZUGaGHGMamB8rNN7m5fPO9nMwObBG26vHlCWUgnue8zL54YmQhPTgN6OPKtZq0egxA7XybImD/H7Z2aVc9sm1UBzZf7K4o9hO1v7PyfXiZJqEnXMClPMXLo/17Nkq0AfjbPpYohXg85o= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=UUCVeo26; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=CjTn6GmV; arc=none smtp.client-ip=202.12.124.152 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="UUCVeo26"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="CjTn6GmV" Received: from phl-compute-11.internal (phl-compute-11.phl.internal [10.202.2.51]) by mailfhigh.stl.internal (Postfix) with ESMTP id 0D05D254012A; Mon, 2 Jun 2025 06:27:26 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-11.internal (MEProxy); Mon, 02 Jun 2025 06:27:26 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-transfer-encoding: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=1748860045; x=1748946445; bh=qXpGm/DOx8t7AteJYeAKjNeGJB/4hQ4MahvPlOiVJiI=; b= UUCVeo26oZghyKJVubso/g1lesiBhYlWBkSg0K1iOa3Z57U2R7YZQp2p8iCDdFzT 3v4QnD9dwncJ0RFiiiD8vDVe24OdV2WYrLyGxqqmDnhvARHdebRfo3Uz4n7UAGgq MViPlB6GWzI9gB+sKxFcmCwHeAMlrTCk24SYiLj3j3hp25NuLbHnKWgWmBem677a BpxJmsrfnTOreN0kcOhDXbYcpVuj+0DawDaSmEmu/5DBKJteVnTTrXHEZ1aOLhDE G+BH+Yc+QFRbG9bRdZ6/+W6j9hJQMDviz7nwBHE/MroSEERp62ZCCrjuKtQABegQ ntCN/Jvn/cTodASu0bwYiA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :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-sender:x-me-sender:x-sasl-enc; s=fm1; t=1748860045; x= 1748946445; bh=qXpGm/DOx8t7AteJYeAKjNeGJB/4hQ4MahvPlOiVJiI=; b=C jTn6GmVeI859dVy6bHyzPqCSIUWUXpjsKojzlJHdExivT8jI7HmKK+259C1atHAA u0OWFoqiLGRwKnPKfxz4ePkZpDy45Thme5UVBmVLggrN5dOQVSgeJreYEw67LAf6 93sSGQP/WBcc0Hep6Pa0QSgnjOb66oh43fFbnJq7/Gjt8gkmIKbZz3AXoU+vdG/1 /HrKnOUvoIbr3jrTeUNbYoQ3kjIyr24Lg/D3g3tnsiMstbnJ9PCtjfrgHGAnTIel joCqoHchGuD/tBR+pCBF/Ok8Nar/UbzxXD8FeJcvFq6ryZELDMst/p7vhfj2LR82 Bz/DTxYbSEnmJV1TeRRcQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeffedrtddtgdefjeegfeculddtuddrgeefvddrtd dtmdcutefuodetggdotefrodftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpggft fghnshhusghstghrihgsvgdpuffrtefokffrpgfnqfghnecuuegrihhlohhuthemuceftd dtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenucfjughrpefhfffugggtgffk fhgjvfevofesthejredtredtjeenucfhrhhomheprfgrthhrihgtkhcuufhtvghinhhhrg hrughtuceophhssehpkhhsrdhimheqnecuggftrfgrthhtvghrnhepffeuiedujedvkeeh uedvkeefffeivdeuleetkeduheejteekgedvudfgtdfgieelnecuvehluhhsthgvrhfuih iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphhssehpkhhsrdhimhdpnhgspghr tghpthhtohephedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepghhithesvhhgvg hrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehsthholhgvvgesghhmrghilhdrtgho mhdprhgtphhtthhopehgihhtshhtvghrsehpohgsohigrdgtohhmpdhrtghpthhtohepjh hlthhosghlvghrsehgmhgrihhlrdgtohhmpdhrtghpthhtohepthhoohhnsehiohhttghl rdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 2 Jun 2025 06:27:24 -0400 (EDT) Received: by mail (OpenSMTPD) with ESMTPSA id 34934bb4 (TLSv1.3:TLS_CHACHA20_POLY1305_SHA256:256:NO); Mon, 2 Jun 2025 10:27:23 +0000 (UTC) From: Patrick Steinhardt Date: Mon, 02 Jun 2025 12:27:08 +0200 Subject: [PATCH v4 07/17] odb: get rid of `the_repository` in `odb_mkstemp()` Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20250602-pks-object-store-wo-the-repository-v4-7-e986804a7c62@pks.im> References: <20250602-pks-object-store-wo-the-repository-v4-0-e986804a7c62@pks.im> In-Reply-To: <20250602-pks-object-store-wo-the-repository-v4-0-e986804a7c62@pks.im> To: git@vger.kernel.org Cc: Derrick Stolee , Junio C Hamano , Toon Claes , Justin Tobler X-Mailer: b4 0.14.2 Get rid of our dependency on `the_repository` in `odb_mkstemp()` by passing in the object database as a parameter and adjusting all callers. Signed-off-by: Patrick Steinhardt --- builtin/fast-import.c | 3 ++- builtin/index-pack.c | 2 +- bundle-uri.c | 3 ++- odb.c | 9 +++++---- odb.h | 7 ++++--- pack-bitmap-write.c | 3 ++- pack-write.c | 10 ++++++---- 7 files changed, 22 insertions(+), 15 deletions(-) diff --git a/builtin/fast-import.c b/builtin/fast-import.c index 52c792488e1..413304db9b5 100644 --- a/builtin/fast-import.c +++ b/builtin/fast-import.c @@ -763,7 +763,8 @@ static void start_packfile(void) struct packed_git *p; int pack_fd; - pack_fd = odb_mkstemp(&tmp_file, "pack/tmp_pack_XXXXXX"); + pack_fd = odb_mkstemp(the_repository->objects, &tmp_file, + "pack/tmp_pack_XXXXXX"); FLEX_ALLOC_STR(p, pack_name, tmp_file.buf); strbuf_release(&tmp_file); diff --git a/builtin/index-pack.c b/builtin/index-pack.c index 1aabe6b8ee2..4d4d989eb1a 100644 --- a/builtin/index-pack.c +++ b/builtin/index-pack.c @@ -362,7 +362,7 @@ static const char *open_pack_file(const char *pack_name) input_fd = 0; if (!pack_name) { struct strbuf tmp_file = STRBUF_INIT; - output_fd = odb_mkstemp(&tmp_file, + output_fd = odb_mkstemp(the_repository->objects, &tmp_file, "pack/tmp_pack_XXXXXX"); pack_name = strbuf_detach(&tmp_file, NULL); } else { diff --git a/bundle-uri.c b/bundle-uri.c index 2e623f8627a..f94e780e967 100644 --- a/bundle-uri.c +++ b/bundle-uri.c @@ -278,7 +278,8 @@ static char *find_temp_filename(void) * Find a temporary filename that is available. This is briefly * racy, but unlikely to collide. */ - fd = odb_mkstemp(&name, "bundles/tmp_uri_XXXXXX"); + fd = odb_mkstemp(the_repository->objects, &name, + "bundles/tmp_uri_XXXXXX"); if (fd < 0) { warning(_("failed to create temporary file")); return NULL; diff --git a/odb.c b/odb.c index 3a3ceed5508..73410920a88 100644 --- a/odb.c +++ b/odb.c @@ -63,7 +63,8 @@ static const struct cached_object *find_cached_object(struct object_database *ob return NULL; } -int odb_mkstemp(struct strbuf *temp_filename, const char *pattern) +int odb_mkstemp(struct object_database *odb, + struct strbuf *temp_filename, const char *pattern) { int fd; /* @@ -71,15 +72,15 @@ int odb_mkstemp(struct strbuf *temp_filename, const char *pattern) * restrictive except to remove write permission. */ int mode = 0444; - repo_git_path_replace(the_repository, temp_filename, "objects/%s", pattern); + repo_git_path_replace(odb->repo, temp_filename, "objects/%s", pattern); fd = git_mkstemp_mode(temp_filename->buf, mode); if (0 <= fd) return fd; /* slow path */ /* some mkstemp implementations erase temp_filename on failure */ - repo_git_path_replace(the_repository, temp_filename, "objects/%s", pattern); - safe_create_leading_directories(the_repository, temp_filename->buf); + repo_git_path_replace(odb->repo, temp_filename, "objects/%s", pattern); + safe_create_leading_directories(odb->repo, temp_filename->buf); return xmkstemp_mode(temp_filename->buf, mode); } diff --git a/odb.h b/odb.h index 7b64358d678..418a57a5487 100644 --- a/odb.h +++ b/odb.h @@ -201,12 +201,13 @@ void odb_clear(struct object_database *o); struct odb_source *odb_find_source(struct object_database *odb, const char *obj_dir); /* - * Create a temporary file rooted in the object database directory, or - * die on failure. The filename is taken from "pattern", which should have the + * Create a temporary file rooted in the primary alternate's directory, or die + * on failure. The filename is taken from "pattern", which should have the * usual "XXXXXX" trailer, and the resulting filename is written into the * "template" buffer. Returns the open descriptor. */ -int odb_mkstemp(struct strbuf *temp_filename, const char *pattern); +int odb_mkstemp(struct object_database *odb, + struct strbuf *temp_filename, const char *pattern); void *repo_read_object_file(struct repository *r, const struct object_id *oid, diff --git a/pack-bitmap-write.c b/pack-bitmap-write.c index 37648b57125..c847369eaaa 100644 --- a/pack-bitmap-write.c +++ b/pack-bitmap-write.c @@ -1052,7 +1052,8 @@ void bitmap_writer_finish(struct bitmap_writer *writer, struct bitmap_disk_header header; - int fd = odb_mkstemp(&tmp_file, "pack/tmp_bitmap_XXXXXX"); + int fd = odb_mkstemp(writer->repo->objects, &tmp_file, + "pack/tmp_bitmap_XXXXXX"); if (writer->pseudo_merges_nr) options |= BITMAP_OPT_PSEUDO_MERGES; diff --git a/pack-write.c b/pack-write.c index 6b06315f80a..eccdc798e36 100644 --- a/pack-write.c +++ b/pack-write.c @@ -84,7 +84,8 @@ const char *write_idx_file(struct repository *repo, } else { if (!index_name) { struct strbuf tmp_file = STRBUF_INIT; - fd = odb_mkstemp(&tmp_file, "pack/tmp_idx_XXXXXX"); + fd = odb_mkstemp(repo->objects, &tmp_file, + "pack/tmp_idx_XXXXXX"); index_name = strbuf_detach(&tmp_file, NULL); } else { unlink(index_name); @@ -259,7 +260,8 @@ char *write_rev_file_order(struct repository *repo, if (flags & WRITE_REV) { if (!rev_name) { struct strbuf tmp_file = STRBUF_INIT; - fd = odb_mkstemp(&tmp_file, "pack/tmp_rev_XXXXXX"); + fd = odb_mkstemp(repo->objects, &tmp_file, + "pack/tmp_rev_XXXXXX"); path = strbuf_detach(&tmp_file, NULL); } else { unlink(rev_name); @@ -342,7 +344,7 @@ static char *write_mtimes_file(struct repository *repo, if (!to_pack) BUG("cannot call write_mtimes_file with NULL packing_data"); - fd = odb_mkstemp(&tmp_file, "pack/tmp_mtimes_XXXXXX"); + fd = odb_mkstemp(repo->objects, &tmp_file, "pack/tmp_mtimes_XXXXXX"); mtimes_name = strbuf_detach(&tmp_file, NULL); f = hashfd(repo->hash_algo, fd, mtimes_name); @@ -531,7 +533,7 @@ struct hashfile *create_tmp_packfile(struct repository *repo, struct strbuf tmpname = STRBUF_INIT; int fd; - fd = odb_mkstemp(&tmpname, "pack/tmp_pack_XXXXXX"); + fd = odb_mkstemp(repo->objects, &tmpname, "pack/tmp_pack_XXXXXX"); *pack_tmp_name = strbuf_detach(&tmpname, NULL); return hashfd(repo->hash_algo, fd, *pack_tmp_name); } -- 2.50.0.rc0.629.g846fc57c9e.dirty