Subject: Re: [PATCH 0/16] make prune mtime-checking more careful

From: René Scharfe <[email-masked]>
Date: Sun, 05 Oct 2014 11:19:07 +0200

Am 05.10.2014 um 00:22 schrieb Junio C Hamano:
> Jeff King <[email-masked]> writes:
>
>> There's quite a lot of patches here, but most of them are preparatory
>> cleanups. The meat is in patches 13, 15, and 16.
>>
>>    [01/16]: foreach_alt_odb: propagate return value from callback
>>    [02/16]: isxdigit: cast input to unsigned char
>>    [03/16]: object_array: factor out slopbuf-freeing logic
>>    [04/16]: object_array: add a "clear" function
>>    [05/16]: clean up name allocation in prepare_revision_walk
>>    [06/16]: reachable: clear pending array after walking it
>>    [07/16]: t5304: use test_path_is_* instead of "test -f"
>>    [08/16]: t5304: use helper to report failure of "test foo = bar"
>>    [09/16]: prune: factor out loose-object directory traversal
>>    [10/16]: count-objects: do not use xsize_t when counting object size
>>    [11/16]: count-objects: use for_each_loose_file_in_objdir
>>    [12/16]: sha1_file: add for_each iterators for loose and packed objects
>>    [13/16]: prune: keep objects reachable from recent objects
>>    [14/16]: pack-objects: refactor unpack-unreachable expiration check
>>    [15/16]: pack-objects: match prune logic for discarding objects
>>    [16/16]: write_sha1_file: freshen existing objects
>
> Somebody please help me out here.
>
> This applied on top of 'maint' (which does have c40fdd01) makes the
> test #9 (prune: do not prune detached HEAD with no reflog) fail.

The test passes if the return value of freshen_file() is negated in 
freshen_packed_object() (see my reply to patch 16).

> If we merge 'dt/cache-tree-repair' (which in turn needs
> 'jc/reopen-lock-file') to 'maint' and then apply these on top, the
> said test passes.  But I do not see an apparent reason why X-<.

Didn't check this interaction, but it sounds strange.

René