Subject: Re: [PATCH v2 2/2] scripts: Add `guix git authenticate --branch`.

From: 45mg <[email-masked]>
Date: Mon, 24 Feb 2025 12:45:23 +0000

Liliana Marie Prikler <[email-masked]> writes:

> Am Sonntag, dem 23.02.2025 um 18:50 +0530 schrieb 45mg:
>>  (define* (record-configuration repository
>> +                               #:optional branch
>>                                 #:key commit signer keyring-
>> reference)
>>    "Record COMMIT, SIGNER, and KEYRING-REFERENCE in the 'config' file
>> of
>> -REPOSITORY."
>> +REPOSITORY, under [guix \"authentication\"].
>> +If BRANCH is given, record them under [guix \"authentication-
>> BRANCH\"]."
>>    (define config
>>      (repository-config repository))
>> +  (define section
>> +    (if branch
>> +        (string-append "guix.authentication-" branch)
>> +        "guix.authentication"))
>>  
>>    ;; Guile-Git < 0.7.0 lacks 'set-config-string'.
>>    (if (module-defined? (resolve-interface '(git)) 'set-config-
>> string)
>>        (begin
>> -        (set-config-string config "guix.authentication.introduction-
>> commit"
>> +        (set-config-string config (string-append section
>> ".introduction-commit")
>>                             commit)
>> -        (set-config-string config "guix.authentication.introduction-
>> signer"
>> +        (set-config-string config (string-append section
>> ".introduction-signer")
>>                             signer)
>> -        (set-config-string config "guix.authentication.keyring"
>> +        (set-config-string config (string-append section ".keyring")
>>                             keyring-reference)
>>          (info (G_ "introduction and keyring recorded \
>>  in repository configuration file~%")))
> I would use guix.authentication[.BRANCH].KEY for consistency.  Yes, you
> can use periods in Git config subsection names as per [1]:
>> Subsection names are case sensitive and can contain any characters
>> except newline and the null byte. 

This would indeed be cleaner. But as you can see in the diffs for
`config-value` and guix.texi, 'guix.authentication-BRANCH' was already
chosen, and I didn't want to break anyone's workflow by changing it.

> Cheers
>
> [1] https://git-scm.com/docs/git-config