diff options
author | Ludovic Courtès <ludo@gnu.org> | 2022-07-10 12:41:41 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2022-07-10 23:57:14 +0200 |
commit | 5d0437ea8ce0147b47b9df866fa2413b48f71a1a (patch) | |
tree | 494de40bd3176de5738683280fc46dc5a717bbb6 | |
parent | 9fdc4b6c283c5aa5cf10205d87fb2c58b829b9d0 (diff) | |
download | guix-5d0437ea8ce0147b47b9df866fa2413b48f71a1a.tar.gz |
time-travel-manifest: Use a separate Git checkout cache.
* etc/time-travel-manifest.scm (guix-instance-compiler): Parameterize %REPOSITORY-CACHE-DIRECTORY.
-rw-r--r-- | etc/time-travel-manifest.scm | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/etc/time-travel-manifest.scm b/etc/time-travel-manifest.scm index 3d7ecff370..f09659d20d 100644 --- a/etc/time-travel-manifest.scm +++ b/etc/time-travel-manifest.scm @@ -20,7 +20,11 @@ ;;; releases from the current Guix, as per 'guix time-machine'. (use-modules (srfi srfi-9) (ice-9 match) - (guix channels) (guix gexp)) + (guix channels) (guix gexp) + ((guix store) #:select (%store-monad)) + ((guix monads) #:select (mparameterize return)) + ((guix git) #:select (%repository-cache-directory)) + ((guix build utils) #:select (mkdir-p))) ;; Representation of the latest channels. This type exists just so we can ;; refer to such records in a gexp. @@ -33,7 +37,14 @@ system target) (match instance (($ <guix-instance> channels) - (latest-channel-derivation channels)))) + ;; When this manifest is evaluated by Cuirass, make sure it does not + ;; fiddle with the cached checkout that Cuirass is also using since + ;; concurrent accesses are unsafe. + (mparameterize %store-monad ((%repository-cache-directory + (string-append (%repository-cache-directory) + "/time-travel"))) + (return (mkdir-p (%repository-cache-directory))) + (latest-channel-derivation channels))))) (define (guix-instance->manifest-entry instance) "Return a manifest entry for INSTANCE." |