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.20210714 released with these changes

  • assistant: Avoid unncessary git repository repair in a situation where git fsck gets confused about a commit that is made while it's running.
  • addurl: Avoid crashing when used on beegfs.
  • --debug output goes to stderr again, not stdout. (Reversion in version 8.20210428)
  • init: Fix misbehavior when core.sharedRepository = group that caused it to enter an adjusted branch and set annex.crippledfilesystem (Reversion in version 8.20210630)
  • assistant: When adding non-large files to git, honor annex.delayadd configuration. Also, don't add non-large files to git when they are still being written to.
Posted Wed Jul 14 16:24:22 2021

git-annex 8.20210630 released with these changes

  • Fixed bug that interrupting git-annex repair (or assistant) while it was fixing repository corruption would lose objects that were contained in pack files. Also the assistant might sometimes have crashed with the same result.
  • repair: Fix reversion in version 8.20200522 that prevented fetching missing objects from remotes.
  • sync: Partly work around github behavior that first branch to be pushed to a new repository is assumed to be the head branch, by not pushing synced/git-annex first.
  • Added annex.freezecontent-command and annex.thawcontent-command configs.
  • Improve display of errors when transfers fail.
  • Dropping an unused object with drop --unused or dropunused will mark it as dead, preventing fsck --all from complaining about it after it's been dropped from all repositories.
  • addurl, importfeed: Added --no-raw option that forces download with youtube-dl or a special remote. In particular this can avoid falling back to raw download when youtube-dl is blocked for some reason.
Posted Wed Jun 30 15:49:25 2021

git-annex 8.20210621 released with these changes

  • New matching options --excludesamecontent and --includesamecontent
  • When two files have the same content, and a required content expression matches one but not the other, dropping the latter file will fail as it would also remove the content of the required file.
  • drop, move, mirror: When two files have the same content, and different numcopies or requiredcopies values, use the higher value.
  • drop --auto: When two files have the same content, and a preferred content expression matches one but not the other, do not drop the content.
  • sync --content, assistant: When two unlocked files have the same content, and a preferred content expression matches one but not the other, do not drop the content. (This was already the case for locked files.)
  • sync --content, assistant: Fix an edge case where a file that is not preferred content did not get dropped.
  • filter-branch: New command, useful to produce a filtered version of the git-annex branch, eg when splitting a repository.
  • fromkey: Create an unlocked file when used in an adjusted branch where the file should be unlocked, or when configured by annex.addunlocked.
  • Fix behavior of several commands, including reinject, addurl, and rmurl when given an absolute path to an unlocked file, or a relative path that leaves and re-enters the repository.
  • smudge: Fix a case where an unlocked annexed file that annex.largefiles does not match could get its unchanged content checked into git, due to git running the smudge filter unecessarily.
  • reinject: Error out when run on a file that is not annexed, rather than silently skipping it.
  • assistant: Fix a crash on startup by avoiding using forkProcess.
  • init: When annex.commitmessage is set, use that message for the commit that creates the git-annex branch.
  • Added annex.adviceNoSshCaching config.
  • Added --size-limit option.
  • Future proof activity log parsing.
  • Fix an exponential slowdown when large numbers of duplicate files are being added in unlocked form.
Posted Mon Jun 21 16:18:47 2021

git-annex 8.20210428 released with these changes

  • New annex.private and configs that can prevent storing information about a repository and remotes in the git-annex branch.
  • initremote: Added --private option to set up a private special remote.
  • importfeed: Made "checking known urls" phase run 12 times faster.
  • Added --debugfilter (and annex.debugfilter)
  • diffdriver: Support unlocked files.
  • forget: Preserve currently exported trees, avoiding problems with exporttree remotes in some unusual circumstances.
  • fsck: When downloading content from a remote, if the content is able to be verified during the transfer, skip checksumming it a second time.
  • directory: When cp supports reflinks, use it.
  • Avoid excess commits to the git-annex branch when stall detection is enabled.
  • git-annex-config: Allow setting annex.securehashesonly, which has otherwise been supported since 2019, but was missing from the list of allowed repo-global configs.
  • init: Fix a crash when the repo's was cloned from a repo that had an adjusted branch checked out, and the origin remote is not named "origin".
  • Fix some bugs that made git-annex not see recently recorded status information when configured with annex.alwayscommit=false.
  • When mincopies is set to a larger value than numcopies, make sure that mincopies is satisfied. Before, it assumed a sane configuration would have numcopies larger or equal to mincopies. It's still a good idea not to configure git-annex this way.
  • Avoid more than 1 gpg password prompt at the same time, which could happen occasionally before when concurrency is enabled.
  • Fix build with persistent-
Posted Wed Apr 28 16:17:16 2021

git-annex 8.20210330 released with these changes

  • Behavior change: When autoenabling special remotes of type S3, weddav, or glacier, do not take login credentials from environment variables, as the user may not be expecting the autoenable to happen, or may have those set for other purposes and not intend git-annex to use them.
  • New annex.supportunlocked config that can be set to false to avoid some expensive things needed to support unlocked files, if you do not use them.
  • Fix bug importing from a special remote into a subdirectory more than one level deep, which generated unusual git trees that could confuse git merge.
  • borg: Fix a bug that prevented importing keys of type URL and WORM.
  • borg: Support importing files that are hard linked in the borg backup.
  • export: When a submodule is in the tree to be exported, skip it.
  • import: When the previously exported tree contained a submodule, preserve it in the imported tree so it does not get deleted.
  • export --json: Fill in the file field.
  • rmurl: When youtube-dl was used for an url, it no longer needs to be prefixed with "yt:" in order to be removed.
  • rmurl: If an url is both used by the web and also claimed by another special remote, fix a bug that caused the url to to not be removed.
  • unregisterurl: Fix a bug that caused an url to not be unregistered when it is claimed by a special remote other than the web.
  • whereis: Don't include yt: prefix when showing url to content retrieved with youtube-dl.
  • webdav: Work around some buggy webdav server behavior involving renaming files.
  • Make --debug also enable debugging in child git-annex processes.
  • fsck: When --from is used in combination with --all or similar options, do not verify required content, which can't be checked properly when operating on keys.
  • Sped up git-annex init in a clone of an existing repository.
  • Improved display of errors when accessing a git http remote fails.
  • Fix build with attoparsec-0.14.
Posted Tue Mar 30 18:34:25 2021

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 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

  • 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

  • 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 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 --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