git-annex 10.20231227 released with these changes
- migrate: Support distributed migrations by recording each migration, and adding a --update option that updates the local repository incrementally, hard linking annex objects to their new keys.
- pull, sync: When operating on content, automatically handle distributed migrations.
- Added annex.syncmigrations config that can be set to false to prevent pull and sync from migrating object content.
- migrate: Added --apply option that (re)applies all recorded distributed migrations to the objects in repository.
- migrate: Support adding size to URL keys that were added with --relaxed, by running eg: git-annex migrate --backend=URL foo
- When importing from a special remote, support preferred content expressions that use terms that match on keys (eg "present", "copies=1"). Such terms are ignored when importing, since the key is not known yet. Before, such expressions caused the import to fail.
- Support git-annex copy/move --from-anywhere --to remote.
- Make git-annex get/copy/move --from foo override configuration of remote.foo.annex-ignore, as documented.
- Lower precision of timestamps in git-annex branch, which can reduce the size of the branch by up to 8%.
- sync: Fix locking problems during merge when annex.pidlock is set.
- Avoid a problem with temp file names ending in "." on certian filesystems that have problems with such filenames.
- sync, push: Avoid trying to send individual files to special remotes configured with importtree=yes exporttree=no, which would always fail.
- Fix a crash opening sqlite databases when run in a non-unicode locale. (Needs persistent-sqlite 2.13.3.)