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>
This commit is contained in:
parent
c4203212e3
commit
a241878ac7
@ -455,6 +455,12 @@ enum for_each_object_flags {
|
|||||||
* Visit objects within a pack in packfile order rather than .idx order
|
* Visit objects within a pack in packfile order rather than .idx order
|
||||||
*/
|
*/
|
||||||
FOR_EACH_OBJECT_PACK_ORDER = (1<<2),
|
FOR_EACH_OBJECT_PACK_ORDER = (1<<2),
|
||||||
|
|
||||||
|
/* Only iterate over packs that are not marked as kept in-core. */
|
||||||
|
FOR_EACH_OBJECT_SKIP_IN_CORE_KEPT_PACKS = (1<<3),
|
||||||
|
|
||||||
|
/* Only iterate over packs that do not have .keep files. */
|
||||||
|
FOR_EACH_OBJECT_SKIP_ON_DISK_KEPT_PACKS = (1<<4),
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -2205,6 +2205,12 @@ int for_each_packed_object(each_packed_object_fn cb, void *data,
|
|||||||
if ((flags & FOR_EACH_OBJECT_PROMISOR_ONLY) &&
|
if ((flags & FOR_EACH_OBJECT_PROMISOR_ONLY) &&
|
||||||
!p->pack_promisor)
|
!p->pack_promisor)
|
||||||
continue;
|
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)) {
|
if (open_pack_index(p)) {
|
||||||
pack_errors = 1;
|
pack_errors = 1;
|
||||||
continue;
|
continue;
|
||||||
|
Loading…
Reference in New Issue
Block a user