Hi, On Fri, 11 Jun 2021 at 23:32, Ludovic Courtès <l...@gnu.org> wrote:
> The code in (guix git) determines expiration based on the mtime of > sub-directories in ~/.cache/guix/checkouts. But that’s bogus, no? > > Yes, and the Internet confirms: a directory’s mtime is only changed when > a file inside it is renamed, added, or deleted.) Oops! So it would > depend on how frequently you pull, and perhaps on the file system you > use, go figure. Hehe! :-) > diff --git a/guix/git.scm b/guix/git.scm > index 57fa2ca1ee..9c6f326c36 100644 > --- a/guix/git.scm > +++ b/guix/git.scm > @@ -424,6 +424,14 @@ it unchanged." > ;; REPOSITORY as soon as possible. > (repository-close! repository) > > + ;; Update CACHE-DIRECTORY's mtime to so the cache logic sees it. > + (match (gettimeofday) > + ((seconds . microseconds) > + (let ((nanoseconds (* 1000 microseconds))) > + (utime cache-directory > + seconds seconds > + nanoseconds nanoseconds)))) > + > ;; When CACHE-DIRECTORY is a sub-directory of the default cache > ;; directory, remove expired checkouts that are next to it. > (let ((parent (dirname cache-directory))) LGTM. Thanks for the quick fix. :-) Cheers, simon