summaryrefslogtreecommitdiff
path: root/guix/git.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2018-03-29 17:34:41 +0200
committerMarius Bakke <mbakke@fastmail.com>2018-03-29 17:34:41 +0200
commit5576cfabf3485e0cf794cc3de085a3578151ee64 (patch)
tree8ca4093d05fda6b0064d0fca429353327ec491f9 /guix/git.scm
parent12cb6c31df4b90d58658e88a256e36b6808e1064 (diff)
parente086d2f68b90a39bae07ae46572e5cc6b0fc4308 (diff)
downloadguix-patches-5576cfabf3485e0cf794cc3de085a3578151ee64.tar
guix-patches-5576cfabf3485e0cf794cc3de085a3578151ee64.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'guix/git.scm')
-rw-r--r--guix/git.scm7
1 files changed, 7 insertions, 0 deletions
diff --git a/guix/git.scm b/guix/git.scm
index d31c35f64f..103749d0e2 100644
--- a/guix/git.scm
+++ b/guix/git.scm
@@ -147,6 +147,13 @@ Git repositories are kept in the cache directory specified by
(when cache-exists?
(remote-fetch (remote-lookup repository "origin")))
(switch-to-ref repository ref)
+
+ ;; Reclaim file descriptors and memory mappings associated with
+ ;; REPOSITORY as soon as possible.
+ (when (module-defined? (resolve-interface '(git repository))
+ 'repository-close!)
+ (repository-close! repository))
+
(copy-to-store store cache-dir
#:url url
#:repository repository))))