Maybe you started out using the SHA1 backend, and have now configured git-annex to use SHA256. But files you added to the annex before still use the SHA1 backend. There is a simple command that can migrate that data:
# git annex migrate my_cool_big_file
migrate my_cool_big_file (checksum...) ok
This stages a change to the file, which you can git commit
like any other
change.
You can only migrate files whose content is currently available. Other files will be skipped.
distributed migration
When you pull changes into your repository that include migration of files, your repository then needs to be updated to follow the migration.
# git-annex migrate --update
migrate my_cool_big_file (checksum...) ok
This is done automatically by commands like git-annex pull
.
unused old content
After migrating a file to a new backend, the old content in the old backend
will still be present. That is necessary because multiple files
can point to the same content. The git annex unused
subcommand can be
used to clear up that detritus later. Note that hard links are used,
to avoid wasting disk space.