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.
git-annex 5.20150731 released with these changes
- webapp: Support enabling known gitlab.com remotes.
- Fix rsync special remote to work when -Jn is used for concurrent uploads.
- The last release accidentially removed a number of options from the copy command. (-J, file matching options, etc). These have been added back.
- init: Detect when the filesystem is crippled such that it ignores attempts to remove the write bit from a file, and enable direct mode. Seen with eg, NTFS fuse on linux.
- Fix man page installation by cabal install; all the new man pages are now installed.
git-annex 5.20150727 released with these changes
- Fix bug that prevented uploads to remotes using new-style chunking from resuming after the last successfully uploaded chunk.
- Switched option parsing to use optparse-applicative. This was a very large and invasive change, and may have caused some minor behavior changes to edge cases of option parsing. (For example, the metadata command no longer accepts the combination of --get and --set, which never actually worked.)
- Bash completion file is now included in the git-annex source tree, and installed into Debian package (and any other packages built using make install). This bash completion is generated by the option parser, so it covers all commands, all options, and will never go out of date!
- As well as tab completing "git-annex" commands, "git annex" will also tab complete. However, git's bash completion script needs a patch, which I've submitted, for this to work prefectly.
- version --raw now works when run outside a git repository.
- assistant --startdelay now works when run outside a git repository.
- dead now accepts multiple --key options.
- addurl now accepts --prefix and --suffix options to adjust the filenames used.
- sync --content: Fix bug that caused files to be uploaded to eg, more archive remotes than wanted copies, only to later be dropped to satisfy the preferred content settings.
- importfeed: Improve detection of known items whose url has changed, and avoid adding redundant files. Where before this only looked at permalinks in rss feeds, it now also looks at guids.
- importfeed: Look at not only permalinks, but now also guids to identify previously downloaded files.
- Webapp: Now features easy setup of git-annex repositories on gitlab.com.
- Adjust debian build deps: The webapp can now build on arm64, s390x and hurd-i386. WebDAV support is also available on those architectures.
- Debian package now maintained by Richard Hartmann.
- Support building without persistent database on for systems that lack TH. This removes support for incremental fsck.
git-annex 5.20150710 released with these changes
- add: Stage symlinks the same as git add would, even if they are not a link to annexed content.
- sync: When annex.autocommit=false, avoid making any commit of local changes, while still merging with remote to the extent possible.
- unused: --used-refspec can now be configured to look at refs in the reflog. This provides a way to not consider old versions of files to be unused after they have reached a specified age, when the old refs in the reflog expire.
- log: Fix reversion introduced in version 5.20150528 that broke this command.
- assistant --autostart: First stop any daemons that are already running, which might be left over from a previous login session and so unable to use the ssh agent of a new login session.
- assistant: Fix local pairing to not include newline in ssh pubkey, which is rejected on the other end for security reasons.
- assistant: Fix ANNEX_SHELL_DIR written to ~/.ssh/authorized_keys in local pairing to be the absolute path to the repository, not "." This was a reversion caused by the relative path changes in 5.20150113.
- Brought back the setkey plumbing command that was removed in 2011, since we found a use case for it. Note that the command's syntax was changed for consistency.
- bugfix: Pass --full-tree when using git ls-files to get a list of files on the git-annex branch, so it works when run in a subdirectory. This bug affected git-annex unused, and potentially also transitions running code and other things.
- Support git's undocumented core.sharedRepository=2 value, which is equivalent to "world", and is set when a repo was created using git init --shared=world.
- When building on linux, pass --as-needed to linker to avoid linking with unused shared libraries including libyaml.
- import: Fix failure of cross-device import on Windows.
- merge: Avoid creating the synced/master branch.
- Removed support for optparse-applicative versions older than 0.10.
git-annex 5.20150617 released with these changes
- Now supports git annex sync --all --content to sync all versions of all files with all repos that want them.
- Added new "anything" preferred content expression, which matches all versions of all files.
- Standard preferred content for client, backup, incremental backup, and unwanted groups have been adjusted to work better when used with git annex sync --all --content.
- fromkey, registerurl: Improve handling of urls that happen to also be parsable as strange keys.
- sync, remotedaemon: Pass configured ssh-options even when annex.sshcaching is disabled.
- assistant: Consume systemd-networkd dbus events to learn about changes to network connections, as was already done with network-manager and wicd. Thanks to Sebastian Reuße for the patches.
- get --incomplete: New option to resume any interrupted downloads.
- dead --key: Can be used to mark a key as dead.
- fsck: Ignore keys that are known to be dead when running in --all/--unused/--key mode or a in a bare repo. Closes: #753888 Otherwise, still reports files with lost contents, even if the content is dead.
- S3: Special remotes can be configured with public=yes to allow the public to access the bucket's content.
- S3: Publically accessible buckets can be used without creds.
- import --clean-duplicates: Fix bug that didn't count local or trusted repo's copy of a file as one of the necessary copies to allow removing it from the import location.
- tahoe: Use ~/.tahoe-git-annex/ rather than ~/.tahoe/git-annex/ when setting up a tahoe special remote to avoid old versions of tahoe create-client choking.
- Fix bug that prevented enumerating locally present objects in repos tuned with annex.tune.objecthash1=true. Fixes: unused, object count in info, unannex.
- Improve url parsing to handle some urls containing illegal  characters in their paths.
- info: Added json output for "backend usage", "numcopies stats", "repositories containing these files", and "transfers in progress".
- Fix incremental backup standard preferred content expression to match its documentation, which says it does not want files that have reached a backup repository.
- Increased the default annex.bloomaccuracy from 1000 to 10000000. This makes git annex unused use up to 16 mb more memory than it did before, but the massive increase in accuracy makes this worthwhile for all but the smallest systems.
- Build documentation with deterministic=1 for reproducible builds. (A new ikiwiki feature.) Closes: #785736
- Re-remove dependency on obsolete hamlet package. Closes: #786659
- debian/cabal-wrapper: Removed this hack which should not be needed anymore.
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!
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.
git-annex will be briefly presented at FOSDEM, on Sunday February 4th at 15:40. Details.
Thanks to Richard Hartmann for making this presentation.
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