In short: is it safe to rsync .git/annex/objects/ to other clones?
I'm in the process of migrating a lot of my files to a new backend. Most them still use the old non-file-size-tracking SHA1 backend from when WORM was the default. I have multiple clones that each use about 460 GB of their 500 GB drives.
I've noticed that git-annex creates hardlinks to migrated content in .git/annex/objects, so I'm able to migrate all content despite only having 40 GB of free space. Excellent.
Now I'm planning to rsync -a --hard-links .git/annex/objects/
${CLONE}/.git/annex/objects/
to recreate the hardlinks and save space on the
clones as well. If I fsck
afterwards, this should be fine, right?
I've tried this with a test repository and it works but I'd like to be extra sure that I'm not missing something crucial.
The alternatives that I'm aware of are:
- making space first:
git annex dropunused "1-20000"
andgit annex get .
- running
git annex migrate
in each clone.
I expect rsync to be safer and faster than these alternatives.
As long as you fsck afterwards, this is fine.
You might want to
git annex fsck --all
in case you have objects for old versions of files.--all
.