bug-guix
[Top][All Lists]
Advanced

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

bug#44187: Channel clones lack SWH fallback


From: zimoun
Subject: bug#44187: Channel clones lack SWH fallback
Date: Fri, 17 Sep 2021 19:31:55 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)

Hi Ludo,

The patch LGTM although there is a redundancy, from my understanding.

On Fri, 10 Sep 2021 at 16:34, Ludovic Courtès <ludo@gnu.org> wrote:

> @@ -694,7 +714,15 @@ wait until it becomes available, which could take 
> several minutes."
>       (format log-port "SWH: found revision ~a with directory at '~a'~%"
>               (revision-id revision)
>               (swh-url (revision-directory-url revision)))
> -     (swh-download-directory (revision-directory revision) output
> -                             #:log-port log-port))
> +     (swh-download-archive (match archive-type
> +                             ('flat
> +                              (string-append
> +                               "swh:1:dir:" (revision-directory revision)))
> +                             ('git-bare
> +                              (string-append
> +                               "swh:1:rev:" (revision-id revision))))

Here the ’swid’ depends on the ’archive-type’…

> +                           output
> +                           #:archive-type archive-type

…which is also passed.  Then this is propagated.  For instance,
’swh-download-directory’:

> +(define* (swh-download-directory id output
> +                                 #:key (log-port (current-error-port)))
> +  "Download from Software Heritage the directory with the given ID, and
> +unpack it to OUTPUT.  Return #t on success and #f on failure."
> +  (swh-download-archive (string-append "swh:1:dir:" id) output
> +                        #:archive-type 'flat
> +                        #:log-port log-port))
> +

Does it make sense to pass this ’swhid’ equal to ’swh:1:rev’ with the
’flat’ archive-type?  Another instance is,

> +     (match (vault-fetch swhid
> +                         #:archive-type archive-type
> +                         #:log-port log-port)

and from my understanding, again ’swhid’ depends on ’archive-type’.
Therefore, it prone error.  The best seems to pass ’(archive-type
. swhid)’ and pattern-match on that.  Yeah, it potentially breaks the
public API… but there is no claim about stability (and I am not
convinced this (guix swh) module is used outside Guix :-)).



Cheers,
simon





reply via email to

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