for_each_*_object: give more comprehensive docstrings

We already mention the local/alternate behavior of these
functions, but we can help clarify a few other behaviors:

 - there's no need to mention LOCAL_ONLY specifically, since
   we already reference the flags by type (and as we add
   more flags, we don't want to have to mention each)

 - clarify that reachability doesn't matter here; this is
   all accessible objects

 - what ordering/uniqueness guarantees we give

 - how pack-specific flags are handled for the loose case

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff King 2018-08-10 19:11:14 -04:00 committed by Junio C Hamano
parent a7ff6f5a0f
commit 8b36155190
2 changed files with 13 additions and 7 deletions

View File

@ -1636,9 +1636,11 @@ enum for_each_object_flags {
}; };


/* /*
* Iterate over loose objects in both the local * Iterate over all accessible loose objects without respect to
* repository and any alternates repositories (unless the * reachability. By default, this includes both local and alternate objects.
* LOCAL_ONLY flag is set). * The order in which objects are visited is unspecified.
*
* Any flags specific to packs are ignored.
*/ */
int for_each_loose_object(each_loose_object_fn, void *, int for_each_loose_object(each_loose_object_fn, void *,
enum for_each_object_flags flags); enum for_each_object_flags flags);

View File

@ -149,10 +149,14 @@ extern int has_object_pack(const struct object_id *oid);
extern int has_pack_index(const unsigned char *sha1); extern int has_pack_index(const unsigned char *sha1);


/* /*
* Iterate over packed objects in both the local * Iterate over all accessible packed objects without respect to reachability.
* repository and any alternates repositories (unless the * By default, this includes both local and alternate packs.
* FOR_EACH_OBJECT_LOCAL_ONLY flag is set). See cache.h for the complete list *
* of flags. * Note that some objects may appear twice if they are found in multiple packs.
* Each pack is visited in an unspecified order. Objects within a pack are
* visited in pack-idx order (i.e., sorted by oid).
*
* The list of flags can be found in cache.h.
*/ */
typedef int each_packed_object_fn(const struct object_id *oid, typedef int each_packed_object_fn(const struct object_id *oid,
struct packed_git *pack, struct packed_git *pack,