Hi Simon, zimoun <zimon.touto...@gmail.com> skribis:
> $ guix describe > Generation 37 Jun 05 2020 01:28:52 (current) > guix 8bd0b53 > repository URL: https://git.savannah.gnu.org/git/guix.git > commit: 8bd0b533b30d7ee5e03aee99a2eb96d5b0b1c836 > > $ echo hello >> $SRC/README && git -C $SRC commit -am hello > [master 09f6e9b34c] hello > 1 file changed, 1 insertion(+) > > $ guix pull --commit=$(git -C $SRC rev-parse HEAD) > Updating channel 'guix' from Git repository at > 'https://git.savannah.gnu.org/git/guix.git'... > Building from this channel: > guix https://git.savannah.gnu.org/git/guix.git 09f6e9b > Computing Guix derivation for 'x86_64-linux'... / > > $ guix describe > Generation 38 Jun 05 2020 02:57:13 (current) > guix 09f6e9b > repository URL: https://git.savannah.gnu.org/git/guix.git > commit: 09f6e9b34c6239bcdd8ca9e030d698b5244507a6 > > $ git -C $SRC reset --hard HEAD^ > HEAD is now at 8bd0b533b3 gnu: libexif: Update to 0.6.22 [security fixes]. > > $ git -C $SRC reflog expire --expire-unreachable=now --all > $ git -C $SRC gc --prune=now --quiet > $ git -C $SRC show 09f6e9b34c6239bcdd8ca9e030d698b5244507a6 > fatal: bad object 09f6e9b34c6239bcdd8ca9e030d698b5244507a6 > > $ guix pull --commit=e451612602 --allow-downgrades > Updating channel 'guix' from Git repository at > 'https://git.savannah.gnu.org/git/guix.git'... > guix pull: error: Git error: object not found - no match for id > (09f6e9b34c6239bcdd8ca9e030d698b5244507a6) Ah I see, thanks for the reproducer. Generally, rebasing does not necessarily implies ‘git gc’, so I think one has to be unlucky to have the former commit disappear right away, no? But yeah, I don’t think there’s much we can do. Or perhaps we could have ‘commit-relation’ report 'unrelated when one of the commits does not exist, that’d be clearer and more useful than this error. WDYT? Ludo’.