31 lines
1.1 KiB
Markdown
31 lines
1.1 KiB
Markdown
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.
|