guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/03: store: Memoize 'add-to-store' based on the result of 'lstat', no


From: Ludovic Courtès
Subject: 02/03: store: Memoize 'add-to-store' based on the result of 'lstat', not 'stat'.
Date: Fri, 19 Jun 2015 08:23:36 +0000

civodul pushed a commit to branch master
in repository guix.

commit 69792b285c98dc031d0464a08f84827e3f49c7f2
Author: Ludovic Courtès <address@hidden>
Date:   Fri Jun 19 10:17:37 2015 +0200

    store: Memoize 'add-to-store' based on the result of 'lstat', not 'stat'.
    
    * guix/store.scm (add-to-store): Change 'stat' call to 'lstat'.  Clarify
      docstring.
---
 guix/store.scm |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/guix/store.scm b/guix/store.scm
index 933708d..7b13334 100644
--- a/guix/store.scm
+++ b/guix/store.scm
@@ -610,11 +610,12 @@ path."
                                  store-path)))
     (lambda (server basename recursive? hash-algo file-name)
       "Add the contents of FILE-NAME under BASENAME to the store.  When
-RECURSIVE? is true and FILE-NAME designates a directory, the contents of
-FILE-NAME are added recursively; if FILE-NAME designates a flat file and
-RECURSIVE? is true, its contents are added, and its permission bits are
-kept.  HASH-ALGO must be a string such as \"sha256\"."
-      (let* ((st    (stat file-name #f))
+RECURSIVE? is false, FILE-NAME must designate a regular file--not a directory
+nor a symlink.  When RECURSIVE? is true and FILE-NAME designates a directory,
+the contents of FILE-NAME are added recursively; if FILE-NAME designates a
+flat file and RECURSIVE? is true, its contents are added, and its permission
+bits are kept.  HASH-ALGO must be a string such as \"sha256\"."
+      (let* ((st    (false-if-exception (lstat file-name)))
              (args  `(,st ,basename ,recursive? ,hash-algo))
              (cache (nix-server-add-to-store-cache server)))
         (or (and st (hash-ref cache args))



reply via email to

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