diff options
author | Junio C Hamano <gitster@pobox.com> | 2022-06-04 00:30:37 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-06-04 00:30:37 +0300 |
commit | a50036da1a39806a8ae1aba2e2f2fea6f7fb8e08 (patch) | |
tree | 1e6c184852ee5a5e5860073c04ea73e034b0060f /object-file.c | |
parent | 37d4ae58efcc9f716435f327c39d5552aedb4b7c (diff) | |
parent | a613164257b46700ca583bdcab160c712ad392fe (diff) |
Merge branch 'tb/cruft-packs'
A mechanism to pack unreachable objects into a "cruft pack",
instead of ejecting them into loose form to be reclaimed later, has
been introduced.
* tb/cruft-packs:
sha1-file.c: don't freshen cruft packs
builtin/gc.c: conditionally avoid pruning objects via loose
builtin/repack.c: add cruft packs to MIDX during geometric repack
builtin/repack.c: use named flags for existing_packs
builtin/repack.c: allow configuring cruft pack generation
builtin/repack.c: support generating a cruft pack
builtin/pack-objects.c: --cruft with expiration
reachable: report precise timestamps from objects in cruft packs
reachable: add options to add_unseen_recent_objects_to_traversal
builtin/pack-objects.c: --cruft without expiration
builtin/pack-objects.c: return from create_object_entry()
t/helper: add 'pack-mtimes' test-tool
pack-mtimes: support writing pack .mtimes files
chunk-format.h: extract oid_version()
pack-write: pass 'struct packing_data' to 'stage_tmp_packfiles'
pack-mtimes: support reading .mtimes files
Documentation/technical: add cruft-packs.txt
Diffstat (limited to 'object-file.c')
-rw-r--r-- | object-file.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/object-file.c b/object-file.c index 857f3bdeba..79eb8339b6 100644 --- a/object-file.c +++ b/object-file.c @@ -997,7 +997,7 @@ int has_loose_object_nonlocal(const struct object_id *oid) return check_and_freshen_nonlocal(oid, 0); } -static int has_loose_object(const struct object_id *oid) +int has_loose_object(const struct object_id *oid) { return check_and_freshen(oid, 0); } @@ -2040,6 +2040,8 @@ static int freshen_packed_object(const struct object_id *oid) struct pack_entry e; if (!find_pack_entry(the_repository, oid, &e)) return 0; + if (e.p->is_cruft) + return 0; if (e.p->freshened) return 1; if (!freshen_file(e.p->pack_name)) |