aboutsummaryrefslogtreecommitdiffstats
path: root/builtin/pack-objects.c
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2025-07-17 06:56:41 +0200
committerJunio C Hamano <gitster@pobox.com>2025-07-16 22:16:17 -0700
commitc2b5d1490a4b6b8b1a50b9ef82ec204811d7ccf1 (patch)
tree622fdf5d907db68531132e3736f9fef01b9de88e /builtin/pack-objects.c
parentobject-file: get rid of `the_repository` in `read_loose_object()` (diff)
downloadgit-c2b5d1490a4b6b8b1a50b9ef82ec204811d7ccf1.tar.gz
git-c2b5d1490a4b6b8b1a50b9ef82ec204811d7ccf1.zip
object-file: get rid of `the_repository` in `force_object_loose()`
The function `force_object_loose()` forces an object to become a loose object in case it only exists in its packed form. To do so it implicitly relies on `the_repository`. Refactor the function by passing a `struct odb_source` as parameter. While the check whether any such loose object exists already acts on the whole object database, writing the loose object happens in one specific source. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/pack-objects.c')
-rw-r--r--builtin/pack-objects.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/builtin/pack-objects.c b/builtin/pack-objects.c
index 9e85293730..7ff79d6b37 100644
--- a/builtin/pack-objects.c
+++ b/builtin/pack-objects.c
@@ -4411,7 +4411,8 @@ static void loosen_unused_packed_objects(void)
if (!packlist_find(&to_pack, &oid) &&
!has_sha1_pack_kept_or_nonlocal(&oid) &&
!loosened_object_can_be_discarded(&oid, p->mtime)) {
- if (force_object_loose(&oid, p->mtime))
+ if (force_object_loose(the_repository->objects->sources,
+ &oid, p->mtime))
die(_("unable to force loose object"));
loosened_objects_nr++;
}