channels: Don't pull from the same channel more than once.
authorLudovic Courtès <ludo@gnu.org>
Thu, 17 Jan 2019 15:57:53 +0000 (16:57 +0100)
committerLudovic Courtès <ludo@gnu.org>
Sun, 20 Jan 2019 16:57:14 +0000 (17:57 +0100)
commited75bdf35ca494496cdbc7a06b414e1f08e70cac
tree2da19cc839aa471f841e85bf67c1ae1c15dee91f
parentff8a66bc611d62280d6882d44dd7ee3bd9955983
channels: Don't pull from the same channel more than once.

Previous 'channel-instance->manifest' would call
'latest-channel-derivation', which could trigger another round of
'latest-repository-commit' for no good reason.

* guix/channels.scm (resolve-dependencies): New procedure.
(channel-instance-derivations)[edges]: New variable.
[instance->derivation]: New procedure.
* tests/channels.scm (make-instance): Use 'checkout->channel-instance'
instead of 'channel-instance'.
("channel-instances->manifest"): New test.
guix/channels.scm
tests/channels.scm