--update
This updates the local repository for migrations that were performed elsewhere. Only new
migrations since the last time this was run will be performed.
This does not modify the working tree, but only hard links (or in some cases copies) annex objects
to their new keys.
git-annexpull and git-annexsync--content automatically do this, unless the annex.syncmigrations
config is set to false.
Note that older versions of git-annex did not record migrations in a way that this can use.
Migrations performed with those older versions had to be manually run in each clone of the
repository.
--apply
This applies all recorded migrations to the local repository. It is the non-incremental form of
--update.
One situation where this can be useful is when git-annex migrate --update has been run, but since
then un-migrated objects have entered the repository. Using this option ensures that any such
objects get migrated.
Note that older versions of git-annex did not record migrations in a way that this can use.
Migrations performed with those older versions had to be manually run in each clone of the
repository.
--backend
Specify the new key-value backend to use for migrated data.
--force
Force migration of keys that are already using the new backend.
file matching options
The git-annex-matching-options(1) can be used to specify files to migrate.
Also the git-annex-common-options(1) can be used.
--remove-size
Keys often include the size of their content, which is generally a useful thing. In fact, this
command defaults to adding missing size information to keys in most migrations. With this option,
the size information is removed instead.
One use of this option is to convert URL keys that were added by git-annexaddurl--fast to ones
that would have been added if that command was run with the --relaxed option. Eg:
git-annex migrate --remove-size --backend=URL somefile
To add back the size to an URL key, use this:
git-annex migrate --backend=URL somefile
--json Enable JSON output. This is intended to be parsed by programs that use git-annex. Each line of
output is a JSON object.
--json-error-messages
Messages that would normally be output to standard error are included in the JSON instead.