From: Eric Sunshine Date: Thu, 13 Aug 2015 18:46:10 GMT Subject: Re: [PATCH 1/2] prepare_packed_git(): refactor garbage reporting in pack directory Message-ID: In-Reply-To: <1439488973-11522-1-git-send-email-dougk.ff7@gmail.com> On Thu, Aug 13, 2015 at 2:02 PM, Doug Kelly wrote: > From: Junio C Hamano > > The hook to report "garbage" files in $GIT_OBJECT_DIRECTORY/pack/ > could be generic but is too specific to count-object's needs. > > Move the part to produce human-readable messages to count-objects, > and refine the interface to callback with the "bits" with values > defined in the cache.h header file, so that other callers (e.g. > prune) can later use the same mechanism to enumerate different > kinds of garbage files and do something intelligent about them, > other than reporting in textual messages. > > Signed-off-by: Junio C Hamano Since you're forwarding Junio's patch, you'd also want to sign-off (following his). > --- > diff --git a/builtin/count-objects.c b/builtin/count-objects.c > index ad0c799..4c3198e 100644 > --- a/builtin/count-objects.c > +++ b/builtin/count-objects.c > @@ -15,9 +15,31 @@ static int verbose; > static unsigned long loose, packed, packed_loose; > static off_t loose_size; > > -static void real_report_garbage(const char *desc, const char *path) > +const char *bits_to_msg(unsigned seen_bits) If you don't expect other callers outside this file, then this should be declared 'static'. If you do expect future external callers, then this should be declared in a public header file (but renamed to be more meaningful). > +{ > + switch (seen_bits) { > + case 0: > + return "no corresponding .idx or .pack"; > + case PACKDIR_FILE_GARBAGE: > + return "garbage found"; > + case PACKDIR_FILE_PACK: > + return "no corresponding .idx"; > + case PACKDIR_FILE_IDX: > + return "no corresponding .pack"; > + case PACKDIR_FILE_PACK|PACKDIR_FILE_IDX: > + default: > + return NULL; > + } > +}