Hi Vagrant, On ven., 28 oct. 2022 at 13:23, Vagrant Cascadian <[email protected]> wrote:
>> Oh yeah, that reminds me to add to the confusion, "guix time-machine >> --commit=SOMECOMMIT" worked fine, even where "SOMECOMMIT" didn't >> successfully work with guix pull. >> >> Maybe that's a clue pointing to the crufty .cache directories? > > Well, after removing ~/.cache/guix/checkouts/ I haven't had the problem > again, with several successful pulls. Well, “guix time-machine --commit=<some-commit>” uses, --8<---------------cut here---------------start------------->8--- (define %default-channel-url ;; URL of the default 'guix' channel. "https://git.savannah.gnu.org/git/guix.git") (define %default-guix-channel (channel (name 'guix) (branch "master") (url %default-channel-url) (introduction %guix-channel-introduction))) (define %default-channels ;; Default list of channels. (list %default-guix-channel)) --8<---------------cut here---------------end--------------->8--- which is another directory checkout under ~/.cache/guix/checkouts. :-) > This suggests to me that guix should make sure to not use a dirty > checkout to prevent this in the future ... either exporting the guix > tree it's working with to a temporary location, or something like > running "git clean -dfx" before using the checkout... >From my understanding, you have 3 similar checkouts of Guix; the default one: --8<---------------cut here---------------start------------->8--- $ cat ~/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq/.git/config [core] bare = false repositoryformatversion = 0 filemode = true logallrefupdates = true [remote "origin"] url = https://git.savannah.gnu.org/git/guix.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master --8<---------------cut here---------------end--------------->8--- and then 2 others, probably located at these hash names: --8<---------------cut here---------------start------------->8--- $ guix repl GNU Guile 3.0.8 Copyright (C) 1995-2021 Free Software Foundation, Inc. Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'. This program is free software, and you are welcome to redistribute it under certain conditions; type `,show c' for details. Enter `,help' for help. scheme@(guix-user)> ,use(guix git) scheme@(guix-user)> ,pp (map url-cache-directory (list "https://git.savannah.gnu.org/git/guix.git" "file:///home/vagrant/src/guix" "file:///home/vagrant/src/guix-master")) $1 = ( "/home/simon/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq" "/home/simon/.cache/guix/checkouts/cbek2jy4zeoea2wj4xppwabceeayfzzuap6iw6uk7kylh4hdolfa" "/home/simon/.cache/guix/checkouts/duxgcjge5pc2tzexf4qwjra3uzu3t4htsxojtxralegek3bqkisa" ) --8<---------------cut here---------------end--------------->8--- then you pulled, guix pull --url=/home/vagrant/src/guix --branch=master and sometimes: guix pull --url=/home/vagrant/src/guix-master --branch=master How clean are these 2 local repositories? I do not know if “git clean -dfx” would help because here the error is probably between the repositories src/guix and src/guix-master and Guix manages them under 2 unrelated directory checkouts. When you cleaned ~/.cache/guix/checkouts and pulled again, you created a new directory checkout. Based on which origin? Default? Or src/guix? Or src/guix-master? Cheers, simon
