Subject: bug#41908: guix time-machine fails; XXXX is not related to introductory commit of channel 'guix'

From: zimoun <[email-masked]>
Date: Tue, 23 Jun 2020 10:42:25 +0200

Hi Ludo,

On Tue, 23 Jun 2020 at 09:35, Ludovic Courtès <[email-masked]> wrote:
> Hi Simon,
>
> zimoun <[email-masked]> skribis:
>
>> $ /tmp/c/bin/guix time-machine --commit=36640207c9 -- help
>> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
>> Usage: guix COMMAND ARGS...
>>
>> $ cat ~/.cache/guix/authentication/channels/guix
>> ;; List of previously-authenticated commits.
>>
>> ("41a2d6a8b9294a6eb8e97aaefd569e755f5f461e"
>>  "e70e097882699865f63eabc5fb29b4fe4468a97b")
>>
>>
>> However, the commit 36640207c9 is not considered as authenticated,
>> right?  So, the older authenticated commit is the first commit used by
>> time-machine, right?
>
> Note that it’s the closure of the commits listed in the cache that’s
> considered authenticated.  So not every commit is listed.
>
> Does that make sense?

Just to be sure to understand:

 1- * 41a2d6a8b9 (newer)
 2- * e70e097882 (between)
 3- * 36640207c9 (older)
 4- * xxxxxxxxxx (first authenticated commit)

>From a fresh cache,

 a) if #2 is authenticated, because it is descendant of #4, it is stored
 and all the commits between (closure), i.e., #3 should be considered as
 authenticated.

 b) then if #1 is authenticated, because it is a descendant of the last
 authenticated i.e. #2, it is stored in the cache.

 c) now let try #3.  It is considered authenticated because in the closure
 of #4 and #2.

Yes it makes sense.  All is good. :-)

(And the assumption is: if Guix does not raise then it means that the
commit is authenticated.)

Cheers,
simon