summaryrefslogtreecommitdiff
path: root/guix/ssh.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-01-12 22:32:52 +0100
committerLudovic Courtès <ludo@gnu.org>2018-01-12 23:41:15 +0100
commit0e3c8528af1b36687a8cfe56a09c452b6ff3508d (patch)
tree3489cd3ba6dceaf799eb622695af54016962daf7 /guix/ssh.scm
parentd06d54e338064d84a59c5811587b930799aab208 (diff)
ssh: 'retrieve-files' now only retrieves what's missing.
* guix/ssh.scm (retrieve-files): Remove the subset of FILES that is valid in LOCAL. (store-export-channel): Add comment.
Diffstat (limited to 'guix/ssh.scm')
-rw-r--r--guix/ssh.scm8
1 files changed, 7 insertions, 1 deletions
diff --git a/guix/ssh.scm b/guix/ssh.scm
index 21c452f28c..ac8569298b 100644
--- a/guix/ssh.scm
+++ b/guix/ssh.scm
@@ -28,6 +28,7 @@
#:use-module (ssh session)
#:use-module (ssh dist)
#:use-module (ssh dist node)
+ #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11)
#:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
@@ -235,6 +236,10 @@ be read. When RECURSIVE? is true, the closure of FILES is exported."
(write `(invalid-items ,invalid))
(exit 1))
+ ;; TODO: When RECURSIVE? is true, we could send the list of store
+ ;; items in the closure so that the other end can filter out
+ ;; those it already has.
+
(write '(exporting)) ;we're ready
(force-output)
@@ -394,7 +399,8 @@ check.")
#:key recursive? (log-port (current-error-port)))
"Retrieve FILES from REMOTE and import them using the 'import-paths' RPC on
LOCAL. When RECURSIVE? is true, retrieve the closure of FILES."
- (retrieve-files* files remote
+ (retrieve-files* (remove (cut valid-path? local <>) files)
+ remote
#:recursive? recursive?
#:log-port log-port
#:import (lambda (port)