guix-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]