[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: "guix pull" expiry channels
From: |
zimoun |
Subject: |
Re: "guix pull" expiry channels |
Date: |
Wed, 16 Jun 2021 07:33:23 +0200 |
Hi,
On Fri, 11 Jun 2021 at 23:32, Ludovic Courtès <ludo@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