Subject: Re: guix pull: error: aborting update of channel 'guix' to commit which is not a descendant

From: Andreas Enge <[email-masked]>
Date: Mon, 28 Jul 2025 10:15:46 +0200

Hello,

Am Sun, Jul 27, 2025 at 04:34:24PM -0400 schrieb [email-masked]:
> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
> guix pull: error: aborting update of channel 'guix' to commit ed8288a53da9951ed66a6b725246971585e9fac5, which is not a descendant of ad8cb7af8fc572bb3d11cd0344bd2bed3b9d653f
> hint: This could indicate that the channel has been tampered with and is trying to force a roll-back, preventing you from getting the latest updates.  If you think this is
> not the case, explicitly allow non-forward updates.
> 
> The commit I am at is
> commit ad8cb7af8fc572bb3d11cd0344bd2bed3b9d653f
> this appears in the github branch as
> 
> commit 544ac628f598bf94a777a3fc2eed39f645f9a01d

this is strange indeed. I confirm that 544ac628f598bf94a777a3fc2eed39f645f9a01d
is on the master branch, while ad8cb7af8fc572bb3d11cd0344bd2bed3b9d653f
is not present in my git checkout.

Did you do a "guix pull --commit=..." to a commit on a different branch?
This is the only explanation I can see. You could safely pull to a new
commit that you know to be on the master branch. Or if you want to
examine a bit more, you can look at your pull history with
   guix pull --list-generations
to check, for instance, whether a previous commit corresponds to one on
the master branch, and could go back to it with
   guix pull --switch-generation=NNN
where NNN is the number (not the commit), and do a "guix pull" from
there.

But the result should be the same in any case, it depends only on the
commit where you pull to, not where you come from.

Andreas