Subject: bug#57306: guix pull to old commit fails due to unsupported manifest format

From: zimoun <[email-masked]>
Date: Wed, 31 Aug 2022 15:15:47 +0200

Hi Ludo,

On Wed, 31 Aug 2022 at 13:06, Ludovic Courtès <[email-masked]> wrote:

> I fixed it in 67a6828b2bb821274757f686f7c685b664339a96 using the same
> trick as earlier.

It means version 3 is used all the time, right?  Well, I miss when or
where version 4 is used then.

--8<---------------cut here---------------start------------->8---
$ for i in $(seq 4 9); \
  do
   grep -A 5 '(manifest' \
        /var/guix/profiles/per-user/simon/current-guix-$i-link/manifest \
  ;done
(manifest
  (version 3)
  (packages
    (("guix"
      "06493e7"
      "out"
(manifest
  (version 4)
  (packages
    (("guix"
      "8f0d45c"
      "out"
(manifest
  (version 4)
  (packages
    (("guix"
      "65cabb0"
      "out"
(manifest
  (version 4)
  (packages
    (("guix"
      "67a6828"
      "out"
(manifest
  (version 3)
  (packages
    (("guix"
      "0bb0e84"
      "out"
(manifest
  (version 3)
  (packages
    (("guix"
      "23152ff"
      "out"
--8<---------------cut here---------------end--------------->8---

>From my understanding, set #:format-version to 3 should only be
considered when <hash> is a parent/ancestor of current commit in
’--commit=<hash>’.

Well, I do not remember all the discussion about --allow-downgrades.
For instance, why is

     $ guix pull --commit=6f75565b -p /tmp/test

not complaining about downgrade?  Because it is a downgrade. :-)

I think version 3 should be only used when the option --allow-downgrades
is provided.

Cheers,
simon