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:

Note this is a security fix release. A prompt upgrade is strongly recommended. Attacks using this security hole will involve the attacker either providing a ssh repository url to the user, or the user pulling from a git-annex repository provided by an attacker and then running git annex enableremote. For details about the security hole, see dashed ssh hostname security hole.

git-annex 6.20170818 released with these changes

  • Security fix: Disallow hostname starting with a dash, which would get passed to ssh and be treated an option. This could be used by an attacker who provides a crafted repository url to cause the victim to execute arbitrary code via -oProxyCommand. (The same class of security hole recently affected git itself.)
  • git-annex.cabal: Deal with breaking changes in Cabal 2.0.
  • Fix build with QuickCheck 2.10.
  • fsck: Support --json.
  • move, copy: Support --batch.
  • Added GIT_ANNEX_VECTOR_CLOCK environment variable, which can be used to override the default timestamps used in log files in the git-annex branch. This is a dangerous environment variable; use with caution.
  • Fix a git-annex test failure when run on NFS due to NFS lock files preventing directory removal.
  • test: Avoid most situations involving failure to delete test directories, by forking a worker process and only deleting the test directory once it exits.
  • Disable http-client's default 30 second response timeout when HEADing an url to check if it exists. Some web servers take quite a long time to answer a HEAD request.
  • Added remote configuration settings annex-ignore-command and annex-sync-command, which are dynamic equivilants of the annex-ignore and annex-sync configurations.
  • Prevent spaces from being embedded in the name of new WORM keys, as that handing spaces in keys would complicate things like the external special remote protocol.
  • migrate: WORM keys containing spaces will be migrated to not contain spaces anymore.
  • External special remotes will refuse to operate on keys with spaces in their names. That has never worked correctly due to the design of the external special remote protocol. Display an error message suggesting migration.
  • Fix incorrect external special remote documentation, which said that the filename parameter to the TRANSFER command could not contain spaces. It can in fact contain spaces. Special remotes implementors that relied on that may need to fix bugs in their special remotes.
  • Fix the external special remotes git-annex-remote-ipfs, git-annex-remote-torrent and the template to correctly support filenames with spaces.
  • Windows: Win32 package has subsumed Win32-extras; update dependency.
Posted Fri Aug 18 15:20:03 2017

git-annex 6.20170520 released with these changes

  • move --to=here moves from all reachable remotes to the local repository.
  • initremote, enableremote: Support gpg subkeys suffixed with an exclamation mark, which forces gpg to use a specific subkey.
  • Improve progress display when watching file size, in cases where a transfer does not resume.
  • Fix transfer log file locking problem when running concurrent transfers.
  • Avoid concurrent git-config setting problem when running concurrent threads.
  • metadata: When setting metadata of a file that did not exist, no error message was displayed, unlike getting metadata and most other git-annex commands. Fixed this oversight.
  • Added annex.resolvemerge configuration, which can be set to false to disable the usual automatic merge conflict resolution done by git-annex sync and the assistant.
  • sync: Added --no-resolvemerge option.
  • Avoid error about git-annex-shell not being found when syncing with -J with a git remote where git-annex-shell is not installed.
  • Fix bug that prevented transfer locks from working when run on SMB or other filesystem that does not support fcntl locks and hard links.
  • assistant: Merge changes from refs/remotes/foo/master into master. Previously, only sync branches were merged. This makes regular git push into a repository watched by the assistant auto-merge.
  • Makefile: Install completions for the fish and zsh shells when git-annex is built with optparse-applicative-0.14.
  • assistant: Don't trust OSX FSEvents's eventFlagItemModified to be called when the last writer of a file closes it; apparently that sometimes does not happen, which prevented files from being quickly added.
Posted Mon Jun 12 17:55:37 2017

git-annex 6.20170519 released with these changes

  • Ssh password prompting improved when using -J for concurrency. When ssh connection caching is enabled (and when GIT_ANNEX_USE_GIT_SSH is not set), only one ssh password prompt will be made per host, and only one ssh password prompt will be made at a time.
  • When built with concurrent-output 1.9, ssh password prompts will no longer interfere with the -J display.
  • Removed dependency on MissingH, instead depending on the split library.
  • Progress is displayed for transfers of files of unknown size.
  • Work around bug in git 2.13.0 involving GIT_COMMON_DIR that broke merging changes into adjusted branches.
Posted Fri May 19 14:58:13 2017

git-annex 6.20170510 released with these changes

  • When a http remote does not expose an annex.uuid config, only warn about it once, not every time git-annex is run.
  • multicast: New command, uses uftp to multicast annexed files, for eg a classroom setting.
  • Added remote.<name>.annex-push and remote.<name>.annex-pull which can be useful to make remotes that don't get fully synced with local changes.
  • Disable git-annex's support for GIT_SSH and GIT_SSH_COMMAND, unless GIT_ANNEX_USE_GIT_SSH=1 is also set in the environment. This is necessary because as feared, the extra -n parameter that git-annex passes breaks uses of these environment variables that expect exactly the parameters that git passes.
  • enableremote: When enabling a non-special remote, param=value parameters can't be used, so error out if any are provided.
  • enableremote: Fix re-enabling of special remotes that have a git url, so that eg, encryption key changes take effect. They were silently ignored, a reversion introduced in 6.20160527.
  • gcrypt: Support re-enabling to change eg, encryption parameters. This was never supported before.
  • git annex add -u now supported, analagous to git add -u
  • version: Added "dependency versions" line.
  • Keys marked as dead are now skipped by --all.
  • annex.backend is the new name for what was annex.backends, and takes a single key-value backend, rather than the unncessary and confusing list. The old option still works if set.
Posted Wed May 10 19:37:48 2017

git-annex 6.20170321 released with these changes

  • Bugfix: Passing a command a filename that does not exist sometimes did not display an error, when a path to a directory was also passed.
  • status: Propigate nonzero exit code from git status.
  • Linux standalone builds put the bundled ssh last in PATH, so any system ssh will be preferred over it.
  • assistant: Add 1/200th second delay between checking each file in the full transfer scan, to avoid using too much CPU.
  • get -J: Improve distribution of jobs amoung remotes when there are more jobs than remotes.
  • fsck -q: When a file has bad content, include the name of the file in the warning message.
  • Windows: Improve handling of shebang in external special remote program, searching for the program in the PATH.
  • Drop support for building with old versions of dns, http-conduit, directory, feed, and http-types.
  • Windows: Fix bug in shell script shebang lookup code that caused a "delayed read on closed handle" error.
  • git-annex-shell: Fix bug when used with a recently cloned repository, where "merging" messages were included in the output of configlist (and perhaps other commands) and caused a "Failed to get annex.uuid configuration" error.
  • Support GIT_SSH and GIT_SSH_COMMAND, which are handled close the same as they are by git. However, unlike git, git-annex sometimes needs to pass the -n parameter when using these.
  • sync --content-of=path (-C path) added for when you want to sync only some files' contents, not the whole working tree.
Posted Tue Mar 21 17:47:29 2017

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