This is where announcements of new releases, features, and other news is posted. git-annex users are recommended to subscribe to this page's RSS feed. Also, see security for security announcements.

RSS Atom Add a new post titled:

git-annex 8.20200617 released with these changes

  • Added annex.skipunknown git config, that can be set to false to change the behavior of commands like git annex get foo*, to not skip over files/dirs that are not checked into git and are explicitly listed in the command line.
  • annex.skipunknown is planned to change to default to false in a git-annex release in early 2022. If you prefer the current behavior, you can explicitly set it to true.
  • Try to enable special remotes configured with autoenable=yes when git-annex auto-initialization happens in a new clone of an existing repo. Previously, git-annex init had to be explicitly run to enable them. Special remotes cannot display anything when autoenabled this way, to avoid interfering with the output of git-annex query commands.
  • export: Added options for json output.
  • import: Added --json-progress.
  • addurl: Make --preserve-filename also apply when eg a torrent contains multiple files.
  • Fix a crash or potentially not all files being exported when sync -J --content is used with an export remote.
  • export: Let concurrent transfers be done with -J or annex.jobs.
  • move --to, copy --to, mirror --to: When concurrency is enabled, run cleanup actions in separate job pool from uploads.
  • init: If lock probing stalls for a long time (eg a broken NFS server), display a message to let the user know what's taking so long.
  • init: When annex.pidlock is set, skip lock probing.
  • Fix file descriptor leak when importing from a directory special remote that is configured with exporttree=yes.
  • Note that external special remote programs should not block SIGINT or SIGTERM.
  • Avoid creating the keys database during init when there are no unlocked files, to prevent init failing when sqlite does not work in the filesystem.
  • import: Avoid using some strange names for temporary keys, which broke importing from a directory special remote onto a vfat filesystem.
  • S3: The REDUCED_REDUNDANCY storage class is no longer cheaper so stop documenting it, and stop offering it as a choice in the assistant.
  • Improve display of problems auto-initializing or upgrading local git remotes.
  • When a local git remote cannot be initialized because it has no git-annex branch or a .noannex file, avoid displaying a message about it.
  • checkpresentkey: When no remote is specified, try all remotes, not only ones that the location log says contain the key. This is what the documentation has always said it did.
  • Fix regression in external special remote handling: GETCONFIG did not return a value that was set with SETCONFIG immediately before. (Regression introduced in version 7.20200202.7)
  • Fix bug that made initremote of extrnal special remotes with embedcreds=yes or gpg encryption not store the creds in the git-annex branch. git-annex-remote-googledrive one was special remote affected by this bug. (Regression introduced in version 7.20200202.7)
  • Fix bug that made creds not be stored in git when a special remote was initialized with gpg encryption, but without an explicit embedcreds=yes. (Regression introduced in version 7.20200202.7)
  • Fix a annex.pidlock issue that made eg git-annex get of an unlocked file hang until the annex.pidlocktimeout and then fail.
Posted Wed Jun 17 20:00:34 2020

git-annex 8.20200522 released with these changes

  • Fix bug that made enableremote of S3 and webdav remotes, that have embedcreds=yes, fail to set up the embedded creds, so accessing the remotes failed. (Regression introduced in version 7.20200202.7)
  • addurl, importfeed: Avoid adding filenames with leading '.', instead it will be replaced with '_'.
  • addurl, importfeed: Allow '-' in filenames, as long as it's not the first character.
  • addurl --preserve-filename: New option, uses server-provided filename without any sanitization, but will fail if the filename has an obvious security problem like using an escape sequence or trying to escape the current directory.
  • whereis: Added --format option.
  • S3: Support signature=v4, to use S3 Signature Version 4. Some S3 services seem to require v4, while others may only support v2, which remains the default.
  • upgrade: When upgrade fails due to an exception, display it.
  • repair: Improve fetching from a remote with an url in host:path format.
  • git-lfs repos that encrypt the annexed content but not the git repo only need --force passed to initremote, allow enableremote and autoenable of such remotes without forcing again.
  • When accessing a remote fails, always display a reason why.
  • Display a warning message when a remote uses a protocol, such as git://, that git-annex does not support. Silently skipping such a remote was confusing behavior.
  • Also display a warning message when a remote, without a known uuid, is located in a directory that does not currently exist, to avoid silently skipping such a remote.
  • sync: Avoid an ugly error message when nothing has been committed to master yet and there is a synced master branch to merge from.
  • Display a warning message when asked to operate on a file inside a directory that's a symbolic link to elsewhere.
  • Support building with tasty-1.3.
Posted Fri May 22 16:08:44 2020

git-annex 8.20200501 released with these changes

  • Improve git-annex's ability to find the path to its program, especially when it needs to run itself in another repo to upgrade it.
  • adb: Better messages when the adb command is not installed.
  • Sped up query commands that read the git-annex branch by around 9%.
  • Various speed improvements gained by using ByteStrings for git refs and shas.
  • Fix a potential failure to parse git config.
  • Support boolean git configs that are represented by the name of the setting with no value, eg "core.bare" is the same as "core.bare = true".
  • When parsing git configs, support all the documented ways to write true and false, including "yes", "on", "1", etc.
  • Fix --batch commands (and git-annex info) to accept absolute filenames for unlocked files, which already worked for locked files.
  • Avoid repeatedly opening keys db when accessing a local git remote and -J is used.
  • Avoid running a large number of git cat-file child processes when run with a large -J value.
  • Avoid running with more git check-attr and check-ignore processes than there are CPU cores when run with a large -J value.
  • get --from, move --from: When used with a local git remote, these used to silently skip files that the location log thought were present on the remote, when the remote actually no longer contained them. Since that behavior could be surprising, now instead display a warning.
  • external special remotes: remote.name.annex-readonly=true no longer disables running the external special remote program. Instead, it just makes the remote operate in a readonly mode, same as any remote. To disable running the external special remote program, now need to set remote.name.annex-externaltype=readonly. That is done when git-annex enableremote is passed readonly=true.
  • Stop storing readonly=true in remote.log of external special remotes; it is a local setting only.
  • sync: When some remotes to sync with are specified, and --fast is too, pick the lowest cost of the specified remotes, do not sync with a faster remote that was not specified.
  • addurl: When run with --fast on an url that annex.security.allowed-ip-addresses prevents accessing, display a more useful message.
  • When the required content is set to "groupwanted", use whatever expression has been set in groupwanted as the required content of the repo, similar to how setting required content to "standard" already worked.
  • Avoid a test suite failure when the environment does not let gpg be tested due to eg, too long a path to the agent socket.
  • test: Include testremote tests, run on a directory special remote.
Posted Fri May 1 21:42:50 2020

git-annex 8.20200330 released with these changes

  • fsck: Fix reversion in 8.20200226 that made it incorrectly warn that hashed keys with an extension should be upgraded.
  • add --force-small: Fix a bug that, when adding a symbolic link, checked in the content of the file the symlink pointed to. Thanks, Kyle Meyer for the patch.
  • add --force-small: Fix failure when passed a modified submodule. Thanks, Kyle Meyer for the patch.
  • When syncing changes back from an adjusted branch to the basis branch, include changes to submodules. Thanks, Kyle Meyer for the patch.
  • webdav: Made exporttree remotes faster by caching connection to the server.
  • Fix a minor bug that caused options provided with -c to be passed multiple times to git.
Posted Mon Mar 30 17:47:23 2020

git-annex 8.20200309 released with these changes

  • Fix bug that caused unlocked annexed dotfiles to be added to git by the smudge filter when annex.dotfiles was not set.
  • Upgrade other repos than the current one by running git-annex upgrade inside them, which avoids problems with upgrade code making assumptions that the cwd will be inside the repo being upgraded. In particular, this fixes a problem where upgrading a v7 repo to v8 caused an ugly git error message.
  • Fix upgrade failure when a file has been deleted from the working tree.
  • Fix regression 1 month ago that prevented external special remotes from using GETCONFIG to query values like "name".
  • Improve behavior when a directory git-annex is writing to gets unmounted. Previously it could in some cases re-create the mount point and directory tree, and even write object contents to the wrong disk.
  • Don't ignore --debug when it is followed by -c.
  • whereis: If a remote fails to report on urls where a key is located, display a warning, rather than giving up and not displaying any information.
  • When external special remotes fail but neglect to provide an error message, say what request failed, which is better than displaying an empty error message to the user.
  • git-annex config: Only allow configs be set that are ones git-annex actually supports reading from repo-global config, to avoid confusion.
  • Avoid converting .git file in a worktree or submodule to a symlink when the repository is not a git-annex repository.
  • Linux standalone: Use md5sum to shorten paths in .cache/git-annex/locales
  • Fix build with ghc 8.8 (MonadFail) Thanks, Peter Simons
  • stack.yaml: Updated to lts-14.27.
Posted Mon Mar 9 21:09:08 2020

Similar to the yearly git user survey, there is a 2018 git-annex user survey.

If you use git-annex, please take a few minutes to answer the questions!

Since git-annex is seeing increasing use to manage scientific data, the survey also includes some extra questions about that at the end.

Posted Sat Dec 1 15:46:38 2018

git-annex 6.20180626 is an important security fix release.

See the advisory for details about the security holes fixed in this release.

After upgrading git-annex, you should restart any git-annex assistant processes.

Several changes to git-annex's behavior had to be made as part of the security fixes:

  • A security fix has changed git-annex to refuse to download content from some special remotes when the content cannot be verified with a hash check. In particular URL and WORM keys stored on such remotes won't be downloaded. See the documentation of the annex.security.allow-unverified-downloads configuration for how to deal with this if it affects your files.

  • A security fix has changed git-annex to only support http, https, and ftp URL schemes by default. You can enable other URL schemes, at your own risk, using annex.security.allowed-url-schemes.

  • A related security fix prevents git-annex from connecting to http servers (and proxies) on localhost or private networks. This can be overridden, at your own risk, using annex.security.allowed-ip-addresses.

  • Setting annex.web-options no longer is enough to make curl be used, and youtube-dl is also no longer used by default. See the documentation of annex.security.allowed-http-addresses for details and how to enable them.

  • The annex.web-download-command configuration has been removed, use annex.web-options instead.

Posted Tue Jun 26 16:00:19 2018

Similar to the yearly git user survey, there is a 2015 git-annex user survey.

If you use git-annex, please take a few minutes to answer the questions!

Posted Mon Oct 19 20:05:12 2015

Similar to the yearly git user survey, I am doing a 2013 git-annex user survey.

If you use git-annex, please take a few minutes to answer my questions!

Posted Fri Nov 22 17:17:21 2013

Thanks to my recent successful git-annex crowdfunding campaign, $1000 has been set aside to award others for their contributions to git-annex by the end of 2013. This is not a lot of money, but I hope that the reward and recognition will encourage some more people to work on git-annex.

You don't need to know Haskell! You could contribute some interesting and useful special remote hooks, or write better documentation.

On the other hand, if you have learned Haskell, this might be your first chance to make some money with it! Some ideas for things to work on that would be particularly award-worthy:

  • Port git-annex to IOS, using ghc-ios. I don't plan to ever do this myself, but you could make it happen.
  • Get the git-annex assistant working in Windows, building on the existing port to Windows. Otherwise, this is on my roadmap for February.
  • Solve existing bugs or todo items. There are more than I can keep up with.

The amount of the awards will vary depending on the size of the contribution. Since this is getting started later than is ideal, I reserve the right to extend it past the end of the year if I don't get enough participants.

If you'd like to participate in this program, just email me at id@joeyh.name. --Joey

Posted Thu Oct 10 22:02:33 2013

git-annex will be briefly presented at FOSDEM, on Sunday February 4th at 15:40. Details.

Thanks to Richard Hartmann for making this presentation.

Posted Sat Feb 4 18:30:28 2012

Christophe-Marie Duquesne has just announced Sharebox, a FUSE filesystem relying on git-annex:

What are your goals?  
Seamless synchronization "à la dropbox".  
Ability to use with big binary files such as mp3/movies.  
Entirely decentralized.  
Don't use unnecessary space  
Keep it simple: avoid special VCS commands and keep a filesystem  
interface as much as possible.

While still alpha, this is promising. --Joey

Posted Thu Mar 31 18:06:14 2011

Linux Weekly News has a nice article on git-annex in it this week.

Posted Thu Dec 9 15:35:07 2010