Subject: Re: [bug#76407] [GCD] A better name for the default branch

From: Liliana Marie Prikler <[email-masked]>
Date: Fri, 21 Feb 2025 20:56:29 +0100

Hi

Am Freitag, dem 21.02.2025 um 19:16 +0100 schrieb Simon Tournier:
> My current profile is:
> 
>         $ guix describe
>         Generation 8    Sep 09 2024 15:14:29    (current)
>           guix 056910e
>             repository URL: https://git.savannah.gnu.org/git/guix.git
>             commit: 056910ec864cb7cf3225a0c27679d94405db7dcd
> 
> And many people upgrade guix-daemon less than once a year. :-)
> 
> My point is: I’m not sure that a grace period of 30 days will be
> enough considering the time to spread the word.  But, hey we need to
> bound somewhere. :-)
I put one month there as an optimistic estimate :)
We do have to talk about all the numbers used there as to whether they
are realistic, whether we should be keeping somethings for longer and
whether we can keep them for longer.

> Therefore, maybe we could imagine that the last commit pushed master
> introduce a double pull.
> 
> Assume I still run this 056910e and we are after the grace period.  I
> run “guix pull” so it fetch the last commit of master.  Now, when I
> run again “guix pull”, I will get the last commit of main.  This
> second pull could be transparent for me.
I don't think we should do this for two reasons:

First, the "double pull" commit would be introduced to master only,
which would break authentication of the main branch pulled this way.
Second, we would have to break Guix itself to introduce arbitrary code
execution for this particular code 😉

Perhaps instead, we can on the Git side "redirect" the master branch to
main.  This would avoid the double pull, and it would be truly
transparent.  Perhaps the following sequence of commands would achieve
just that.  (CC'ing Denis for their expertise)

Am Mittwoch, dem 19.02.2025 um 02:12 +0100 schrieb Denis 'GNUtoo'
Carikli:
> $ git checkout origin/master -b temporary
> $ git push origin HEAD:main
> $ ssh root@server
> $ cd /path/to/repository.git
> $ git symbolic-ref HEAD refs/heads/main # Change the main branch
> $ git symbolic-ref refs/heads/master refs/heads/main # Make master
> point to main

> This might avoid: Oops why don’t I get the last?  Because you’re
> after the grace period. :-)
> 
> I don’t know if my suggestion is worth.
Fair point.  Double-pulling is a source of annoyance in other package
managers, so we should do our best not to make it affect too many
users.

Cheers