I noticed today when running git annex sync
that it was unhappy with one of my remotes:
remote: git-annex: Repository /home/anovak/annex/.git is at unsupported version 7. Automatic upgrade exception! actually-broken.log: getSymbolicLinkStatus: does not exist (No such file or directory)
Digging in, it looks like that machine is running Ubuntu 20.04, which ships Git Annex 8, which only supports repo version 8. The rest of my machines are a mix of Ubuntu 18.04 and other Debian derivatives, which all ship older versions of Git Annex, which can't support repo version 8.
Is there a way for me to get out of manually installing Git Annex on every machine to upgrade everything to v8 at the same time?
And, before I've upgraded, is there a way to screw up my repo by e.g. running git annex sync
from the newer Git Annex and pushing commits in the new format over to machines that still only speak the old format?
How are other people handling this transition where there's no repo format that's speakable by all the machines? Just upgrading everything at once and replacing the distro's git annex with a manually installed version?
/opt
, setGIT_ANNEX_PACKAGE_INSTALL=no
at the top ofgit-annex.linux/runshell
and then link git-annex to/usr/bin/git-annex
withln -s /opt/git-annex.linux/git-annex /usr/bin/git-annex
.A git-annex repo consisting of annex symlinks (locked files) can be cloned and used on machines running git-annex versions between 2 and 8. (Any version from the past 9 years.) It's the same information stored in git.
If you choose to commit unlocked files to the repo, those files will only work when using git-annex 7 or 8. But that's optional and you can also just re-lock the files to regain compatability all the way back to version 2.
So, no, you do not need to worry about git-annex sync breaking something.
And, git-annex 8 on one machine can talk to git-annex 7 (or any version really) on another machine, no problem.
Now, if you have a repo that you are physically moving around between machines, on USB for example, then the machines all need have to have a git-annex version installed that's compatible with the annex.version of the repo.
Oh, that must be the problem; the remote that's giving me trouble is on NTFS, so I think everything has been automatically unlocked there.
I'll just wait for Raspian to upgrade, and see about switching to a better filesystem in the meantime.