Re: [PATCH 2/2] rerere: fix overeager gc
On Wed, Jul 14, 2010 at 09:23:17AM -0700, Junio C Hamano wrote:
> I wonder if swapping the order of things to check may make it easier to
> read, though. If it was used, we want to compare gc.rerereresolved with
> that timestamp, and otherwise we want to compare gc.rerereunresolved with
> the timestamp of the creation. I.e. something like this...
Show 33 quoted lines
> builtin/rerere.c | 14 +++++++-------
> 1 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/builtin/rerere.c b/builtin/rerere.c
> index 7e45afe..6d1b580 100644
> --- a/builtin/rerere.c
> +++ b/builtin/rerere.c
> @@ -59,16 +59,16 @@ static void garbage_collect(struct string_list *rr)
> while ((e = readdir(dir))) {
> if (is_dot_or_dotdot(e->d_name))
> continue;
> - then = rerere_created_at(e->d_name);
> - if (!then)
> - continue;
> - if (has_rerere_resolution(e->d_name)) {
> - then = rerere_last_used_at(e->d_name);
> +
> + then = rerere_last_used_at(e->d_name);
> + if (then) {
> + cutoff = cutoff_resolve;
> + } else {
> + then = rerere_created_at(e->d_name);
> if (!then)
> continue;
> - cutoff = cutoff_resolve;
> - } else
> cutoff = cutoff_noresolve;
> + }
> if (then < now - cutoff * 86400)
> string_list_append(e->d_name, &to_remove);
> }
>
>