git-annex 10.20231227 released with [[!toggle text="these changes"]] [[!toggleable text=""" * 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.)"""]]