diff options
author | Taylor Blau <me@ttaylorr.com> | 2021-08-29 22:48:52 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-08-29 23:23:39 -0700 |
commit | a241878ac7b67b1894c14d3c3e33ed13f11ae253 (patch) | |
tree | 84c18dcc4b130740020122fb075e71890e928279 /packfile.c | |
parent | c4203212e360b25a1c69467b5a8437d45a373cac (diff) | |
download | git-a241878ac7b67b1894c14d3c3e33ed13f11ae253.tar.gz |
object-store.h: teach for_each_packed_object to ignore kept packs
The next patch will reimplement a function that wants to iterate over
packed objects while ignoring packs which are marked as kept (either
in-core or on-disk).
Teach for_each_packed_object() to ignore all objects from those packs by
adding a new flag for each of the "kept" states that a pack can be in.
Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'packfile.c')
-rw-r--r-- | packfile.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/packfile.c b/packfile.c index 9ef6d98292..4d0d625238 100644 --- a/packfile.c +++ b/packfile.c @@ -2205,6 +2205,12 @@ int for_each_packed_object(each_packed_object_fn cb, void *data, if ((flags & FOR_EACH_OBJECT_PROMISOR_ONLY) && !p->pack_promisor) continue; + if ((flags & FOR_EACH_OBJECT_SKIP_IN_CORE_KEPT_PACKS) && + p->pack_keep_in_core) + continue; + if ((flags & FOR_EACH_OBJECT_SKIP_ON_DISK_KEPT_PACKS) && + p->pack_keep) + continue; if (open_pack_index(p)) { pack_errors = 1; continue; |