update for distributed migration

This commit is contained in:
Joey Hess 2023-12-08 14:39:38 -04:00
parent 60d00fdd33
commit cb9bb2027c
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38

View file

@ -1,14 +1,29 @@
Maybe you started out using the WORM backend, and have now configured Maybe you started out using the SHA1 backend, and have now configured
git-annex to use SHA1. But files you added to the annex before still git-annex to use SHA256. But files you added to the annex before still
use the WORM backend. There is a simple command that can migrate that use the SHA1 backend. There is a simple command that can migrate that
data: data:
# git annex migrate my_cool_big_file # git annex migrate my_cool_big_file
migrate my_cool_big_file (checksum...) ok 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 You can only migrate files whose content is currently available. Other
files will be skipped. 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 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 will still be present. That is necessary because multiple files
can point to the same content. The `git annex unused` subcommand can be can point to the same content. The `git annex unused` subcommand can be