News for git-annex 8.20200226:

This version of git-annex uses repository version 8 for all repositories. Existing repositories will be automatically upgraded by default. You can prevent this, by runing: git config annex.autoupgraderepository false The upgrade process involves regenerating some sqlite databases. There are a couple consequences of the upgrade to keep in mind:

  • Any incremental fscks that were started in v7 won't resume where they left off in v8, but will instead begin again from the first file.

  • An interrupted export that was started in v7 won't resume where it left off after upgrade to v8; files will be re-uploaded to the export remote.

  • After the upgrade, git-annex will in some situations have to do extra work while it finishes populating its sqlite databases.

Also, there are some behavior changes around adding dotfiles. While before git-annex add skipped adding dotfiles when operating on whole directories, and added dotfiles that were explicitly listed to the annex, it now adds dotfiles to git by default, unless annex.dotfiles is set to true.

git-annex 8.20200226 released with these changes

  • New v8 repository version.
  • v7 upgrades automatically to v8. The upgrade deletes old sqlite databases, which may cause git-annex to need to do extra work to regenerate the databases or due to not having the information from the old databases available. Two notable cases are interrupted incremental fscks and interrupted exports, both of which will restart from the beginning.
  • Improved serialization of filenames and keys to the sqlite databases, avoiding encoding problems and speeding up operations on them.
  • Add some missing indexes to sqlite databases. This will speed up some things involving export and import remotes, and git-annex smudge. Microbenchmarks show around 10-25% speedup of sqlite database operations.
  • add: When adding a whole directory, any dotfiles found in it will not be skipped, but will be added to git by default. This behavior can be configured with annex.dotfiles.
  • add: Removed special case for explicitly passing dotfiles, that no longer adds them to the annex, but to git. This behavior can be configured with annex.dotfiles.
  • add: Removed the --include-dotfiles option.
  • initremote, enableremote: Set remote.name.skipFetchAll when the remote cannot be fetched from by git, so git fetch --all will not try to use it.
  • Fix some cases where handling of keys with extensions varied depending on the locale.
  • annex.maxextensionlength used to be the number of characters, not bytes, when in a utf-8 locale. It's now always the number of bytes.
  • Extended annex.security.allowed-ip-addresses to let specific ports of an IP address to be used, while denying use of other ports.
  • init --version: When the version given is one that automatically upgrades to a newer version, use the newer version instead.
  • Auto upgrades from older repo versions, like v5, now jump right to v8.
  • Makefile: Support newer versions of cabal that use the new-build system.