diff options
author | Ludovic Courtès <ludo@gnu.org> | 2020-12-11 12:36:52 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2020-12-15 17:32:11 +0100 |
commit | 1574bd82bb36ee64574912c3e8855f94a73adc44 (patch) | |
tree | 180ad6f175671dc197fc73ccbaf49e1f2eb22650 /.dir-locals.el | |
parent | 0682cc593688e7d9a435ca69f05320aa87df06d0 (diff) | |
download | guix-1574bd82bb36ee64574912c3e8855f94a73adc44.tar guix-1574bd82bb36ee64574912c3e8855f94a73adc44.tar.gz |
system: 'init' does not recompute the hash of each store item.
Fixes <https://bugs.gnu.org/44760>.
Previously, the 'register-path' call would re-traverse ITEM to compute
its nar hash, even though that hash is already known in the initial
store. This patch also avoids repeated opening/closing of the
database.
* guix/store/database.scm (call-with-database): Export.
* guix/scripts/system.scm (copy-item): Add 'db' parameter. Call
'sqlite-register' instead of 'register-path'.
(copy-closure): Remove redundant call to 'references*'. Call
'call-with-database' and pass the database to 'copy-item'.
Diffstat (limited to '.dir-locals.el')
-rw-r--r-- | .dir-locals.el | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/.dir-locals.el b/.dir-locals.el index 4eb27d8b1b..8f07a08eb5 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -121,6 +121,7 @@ (eval . (put 'let-system 'scheme-indent-function 1)) (eval . (put 'with-database 'scheme-indent-function 2)) + (eval . (put 'call-with-database 'scheme-indent-function 1)) (eval . (put 'call-with-transaction 'scheme-indent-function 1)) (eval . (put 'with-statement 'scheme-indent-function 3)) (eval . (put 'call-with-retrying-transaction 'scheme-indent-function 1)) |