aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Baines <mail@cbaines.net>2023-10-16 21:18:44 +0100
committerChristopher Baines <mail@cbaines.net>2023-10-16 21:18:44 +0100
commit89782b34499befbef7b9c4e13e5ff5178c7e27b4 (patch)
tree6a7f508b669d338358d0e805573b3811b1d4d3aa
parent851a6c17b56a2f06839c79d914eaaa677a1061f2 (diff)
downloaddata-service-89782b34499befbef7b9c4e13e5ff5178c7e27b4.tar
data-service-89782b34499befbef7b9c4e13e5ff5178c7e27b4.tar.gz
Close the repository when pulling
And remove the monitor, as I'm not sure it's necessary.
-rw-r--r--guix-data-service/poll-git-repository.scm25
1 files changed, 12 insertions, 13 deletions
diff --git a/guix-data-service/poll-git-repository.scm b/guix-data-service/poll-git-repository.scm
index 1ce271a..e059343 100644
--- a/guix-data-service/poll-git-repository.scm
+++ b/guix-data-service/poll-git-repository.scm
@@ -77,7 +77,8 @@
;; Only fetch remote if it has not been cloned just before.
(when cache-exists?
(remote-fetch (remote-lookup repository "origin")
- #:fetch-options ((@@ (guix git) make-default-fetch-options))))))
+ #:fetch-options ((@@ (guix git) make-default-fetch-options))))
+ (repository-close! repository)))
(define (poll-git-repository conn git-repository-id)
(define git-repository-details
@@ -89,18 +90,16 @@
conn
'latest-channel-instances
(lambda ()
- ;; Maybe this helps avoid segfaults?
- (monitor
- ;; This was using update-cached-checkout, but it wants to checkout
- ;; refs/remotes/origin/HEAD by default, and that can fail for some
- ;; reason on some repositories:
- ;;
- ;; reference 'refs/remotes/origin/HEAD' not found
- ;;
- ;; I just want to update the cached checkout though, so trying to
- ;; checkout some revision is unnecessary, hence
- ;; just-update-cached-checkout
- (just-update-cached-checkout (second git-repository-details)))
+ ;; This was using update-cached-checkout, but it wants to checkout
+ ;; refs/remotes/origin/HEAD by default, and that can fail for some reason
+ ;; on some repositories:
+ ;;
+ ;; reference 'refs/remotes/origin/HEAD' not found
+ ;;
+ ;; I just want to update the cached checkout though, so trying to
+ ;; checkout some revision is unnecessary, hence
+ ;; just-update-cached-checkout
+ (just-update-cached-checkout (second git-repository-details))
(let* ((repository-directory
(url-cache-directory