Code

Merge branch 'sg/rerere-gc-old-still-used' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 1 Sep 2010 20:57:23 +0000 (13:57 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 1 Sep 2010 20:57:23 +0000 (13:57 -0700)
* sg/rerere-gc-old-still-used:
  rerere: fix overeager gc
  mingw_utime(): handle NULL times parameter

1  2 
builtin/rerere.c
compat/mingw.c
rerere.c

index 39ad60169d6f4cd53e560e922410b48cc01f7886,6d1b5802add040b7189630077c1bc10b82f76756..0c7202eb9e637b69bcbbf3641d8ed72f44fd7684
@@@ -53,13 -59,18 +59,18 @@@ static void garbage_collect(struct stri
        while ((e = readdir(dir))) {
                if (is_dot_or_dotdot(e->d_name))
                        continue;
-               then = rerere_created_at(e->d_name);
-               if (!then)
-                       continue;
-               cutoff = (has_rerere_resolution(e->d_name)
-                         ? cutoff_resolve : cutoff_noresolve);
+               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_noresolve;
+               }
                if (then < now - cutoff * 86400)
 -                      string_list_append(e->d_name, &to_remove);
 +                      string_list_append(&to_remove, e->d_name);
        }
        for (i = 0; i < to_remove.nr; i++)
                unlink_rr_item(to_remove.items[i].string);
diff --cc compat/mingw.c
Simple merge
diff --cc rerere.c
Simple merge