Subject: Re: [RFC PATCH] rerere: fix overeager gc

From: SZEDER Gábor <[email-masked]>
Date: Wed, 30 Jun 2010 10:01:09 +0200

Hi,

thank you both for your comments.

On Wed, Jun 30, 2010 at 08:12:30AM +0200, Johannes Sixt wrote:
> Am 6/29/2010 19:59, schrieb Junio C Hamano:
> > One possibility is to look at the timestamp of the directory itself
> > instead.  Then we can safely gc otherwise-unused "thisimage" file when
> > rerere is not in use.  I wonder if directory m_time timestamps are usable
> > for this purpose on non-POSIX platforms?
> 
> I don't think that will work at all: We only use fopen() to write
> thisimage, which only truncates the file, but doesn't modify mtime of the
> directory. Nor do we create any other (temporary) directory entries that
> would modify the mtime.

Indeed; on Linux I have:

drwxr-xr-x 2 szeder szeder 4096 2010-06-24 10:59 .git/rr-cache/13e67feeb07f97d6fccc2257d793d93ec4e730bf/

-rw-r--r-- 1 szeder szeder 3095 2010-06-30 04:56 .git/rr-cache/13e67feeb07f97d6fccc2257d793d93ec4e730bf/thisimage

> Would it be possible to update the timestamp of preimage every time it is
> used (e.g., in rerere.c:merge()), and check for that?

Will take a look.

Best,
Gábor