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.

RSS Atom Add a new post titled:

git-annex 5.20150327 released with these changes

  • readpresentkey: New plumbing command for checking location log.
  • checkpresentkey: New plumbing command to check if a key can be verified to be present on a remote.
  • Added a post-update-annex hook, which is run after the git-annex branch is updated. Needed for git update-server-info.
  • migrate: --force will force migration of keys already using the destination backend. Useful in rare cases.
  • Man pages for individual commands now available, and can be opened using "git annex help <command>"
  • --auto is no longer a global option; only get, drop, and copy accept it. (Not a behavior change unless you were passing it to a command that ignored it.)
  • Improve error message when --in @date is used and there is no reflog for the git-annex branch.
  • assistant: Committing a whole lot of files at once could overflow command-line length limits and cause the commit to fail. This only happened when using the assistant in an indirect mode repository.
  • Work around curl bug when asked to download an empty url to a file.
  • Fix bug introduced in the last release that broke git-annex sync when git-annex was installed from the standalone tarball.
Posted Fri Mar 27 18:28:50 2015

git-annex 5.20150317 released with these changes

  • fsck: Incremental fsck uses sqlite to store its records, instead of abusing the sticky bit. Existing sticky bits are ignored; incremental fscks started by old versions won't be resumed by this version.
  • fsck: Multiple incremental fscks of different repos (including remotes) can now be running at the same time in the same repo without it getting confused about which files have been checked for which remotes.
  • unannex: Refuse to unannex when repo is too new to have a HEAD, since in this case there must be staged changes in the index (if there is anything to unannex), and the unannex code path needs to run with a clean index.
  • Linux standalone: Set LOCPATH=/dev/null to work around This prevents localization from working, but git-annex is not localized anyway.
  • sync: As well as the synced/git-annex push, attempt a git-annex:git-annex push, as long as the remote branch is an ancestor of the local branch, to better support bare git repos. (This used to be done, but it forgot to do it since version 4.20130909.)
  • When re-execing git-annex, use current program location, rather than ~/.config/git-annex/program, when possible.
  • Submodules are now supported by git-annex!
  • metadata: Fix encoding problem that led to mojibake when storing metadata strings that contained both unicode characters and a space (or '!') character.
  • Also potentially fixes encoding problem when embedding credentials that contain unicode characters.
  • sync: Fix committing when in a direct mode repo that has no HEAD ref. (For example, a newly checked out git submodule.)
  • Added SETURIPRESENT and SETURIMISSING to external special remote protocol, useful for things like ipfs that don't use regular urls.
  • addurl: Added --raw option, which bypasses special handling of quvi, bittorrent etc urls.
  • git-annex-shell: Improve error message when the specified repository doesn't exist or git config fails for some reason.
  • fromkey --force: Skip test that the key has its content in the annex.
  • fromkey: Add stdin mode.
  • registerurl: New plumbing command for mass-adding urls to keys.
  • remotedaemon: Fixed support for notifications of changes to gcrypt remotes, which was never tested and didn't quite work before.

Update: The OSX build for this release was missing the webapp. An updated build is now available fixing that problem.

Posted Tue Mar 17 17:13:36 2015

git-annex 5.20150219 released with these changes

  • glacier: Detect when the glacier command in PATH is the wrong one, from boto, rather than from glacier-cli, and refuse to use it, since the boto program fails to fail when passed parameters it does not understand.
  • groupwanted: New command to set the groupwanted preferred content expression.
  • import: Support file matching options such as --exclude, --include, --smallerthan, --largerthan
  • The file matching options are now only accepted by commands that can actually use them, instead of by all commands.
  • import: Avoid checksumming file twice when run in the default or --duplicate mode.
  • Windows: Fix bug in dropping an annexed file, which caused a symlink to be staged that contained backslashes.
  • webapp: Fix reversion in opening webapp when starting it manually inside a repository.
  • assistant: Improve sanity check for control characters when pairing.
  • Improve race recovery code when committing to git-annex branch.
  • addurl: Avoid crash if quvi is not installed, when git-annex was built with process-1.2
  • bittorrent: Fix mojibake introduced in parsing arai2c progress output.
  • fsck --from: If a download from a remote fails, propagate the failure.
  • metadata: When setting metadata, do not recurse into directories by default, since that can be surprising behavior and difficult to recover from. The old behavior is available by using --force.
  • sync, assistant: Include repository name in head branch commit message.
  • The ssh-options git config is now used by gcrypt, rsync, and ddar special remotes that use ssh as a transport.
  • sync, assistant: Use the ssh-options git config when doing git pull and push.
  • remotedaemon: Use the ssh-options git config.
  • Linux standalone: Improved process names of linker shimmed programs.
Posted Thu Feb 19 18:55:12 2015

git-annex 5.20150205 released with these changes

  • info: Can now display info about a given uuid.
  • Added to remote/uuid info: Count of the number of keys present on the remote, and their size. This is rather expensive to calculate, so comes last and --fast will disable it.
  • info remote: Include the date of the last sync with the remote.
  • sync: Added --message/-m option like git commit.
  • remotedaemon: Fix problem that could prevent ssh connections being made after two LOSTNET messages were received in a row (perhaps due to two different network interfaces being brought down).
  • Fix build failure when wget is not installed.
  • Fix wording of message displayed when unable to get a file that is available in untrusted repositories.
  • addurl: When a Content-Disposition header suggests a filename to use, addurl will consider using it, if it's reasonable and doesn't conflict with an existing file. (--file overrides this)
  • Fix default repository description created by git annex init, which got broken by the relative path changes in the last release.
  • init: Repository tuning parameters can now be passed when initializing a repository for the first time. For details, see
  • merge: Refuse to merge changes from a git-annex branch of a repo that has been tuned in incompatible ways.
  • Support annex.tune.objecthash1, annex.tune.objecthashlower, and annex.tune.branchhash1.
  • Remove support for building without cryptohash.
  • Added MD5 and MD5E backends.
  • assistant: Fix local pairing when ssh pubkey comment contains spaces.
  • Avoid using fileSize which maxes out at just 2 gb on Windows. Instead, use hFileSize, which doesn't have a bounded size. Fixes support for files > 2 gb on Windows.
  • Windows: Fix running of the pre-commit-annex hook.
  • Windows: Fix S3 special remote; need to call withSocketsDo. Thanks, Trent.
Posted Thu Feb 5 18:34:34 2015

git-annex 5.20150113 released with these changes

  • unlock: Don't allow unlocking files that have never been committed to git before, to avoid an intractable problem that prevents the pre-commit hook from telling if such a file is intended to be an annexed file or not.
  • Avoid re-checksumming when migrating from hash to hashE backend. Closes: #774494
  • Fix build with process
  • Android: Provide a version built with -fPIE -pie to support Android 5.0.
  • sync: Fix an edge case where syncing in a bare repository would try to merge and so fail.
  • Check git version at runtime, rather than assuming it will be the same as the git version used at build time when running git-checkattr and git-branch remove.
  • Switch to using relative paths to the git repository.
    • This allows the git repository to be moved while git-annex is running in it, with fewer problems.
    • On Windows, this avoids some of the problems with the absurdly small MAX_PATH of 260 bytes. In particular, git-annex repositories should work in deeper/longer directory structures than before.
  • Generate shorter keys for WORM and URL, avoiding keys that are longer than used for SHA256, so as to not break on systems like Windows that have very small maximum path length limits.
  • Bugfix: A file named HEAD in the work tree could confuse some git commands run by git-annex.
Posted Tue Jan 13 16:22:22 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