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.20150824 released with these changes
- Sped up downloads of files from ssh remotes, reducing the non-data-transfer overhead 6x.
- sync: Support --jobs
- sync --content: Avoid unnecessary second pull from remotes when no file transfers are made.
- External special remotes can now be built that can be used in readonly mode, where git-annex downloads content from the remote using regular http.
- Added WHEREIS to external special remote protocol.
- importfeed --relaxed: Avoid hitting the urls of items in the feed.
- Fix reversion in init when ran as root, introduced in version 5.20150731.
- Reorder declaration to fix build with yesod-core > 1.4.13. Thanks, Michael Alan Dorman.
- Fix building without quvi and without database. Thanks, Ben Boeckel.
- Avoid building the assistant on the hurd, since an inotify equivalent is not yet implemented in git-annex for the hurd.
- --debug log messages are now timestamped with fractional seconds.
- --debug is passed along to git-annex-shell when git-annex is in debug mode.
- Makefile: Pass LDFLAGS, CFLAGS, and CPPFLAGS through ghc and on to ld, cc, and cpp.
- As a result of the Makefile changes, the Debian package is built with various hardening options. Although their benefit to a largely haskell program is unknown.
Note: The x86-64 bit linux standalone tarball shipped with this version had a broken version of ssh that crashed on startup. The tarball has been updated to fix this problem.
git-annex 5.20150812 released with these changes
- Added support for SHA3 hashed keys (in 8 varieties), when git-annex is built using the cryptonite library.
- metadata: Fix reversion introduced in 5.20150727 that caused recursive display of metadata to not work.
- Windows: Fix bug that caused git-annex sync to fail due to missing environment variable.
- Fix setting/setting/viewing metadata that contains unicode or other special characters, when in a non-unicode locale.
- Simplify setup process for a ssh remote. Now it suffices to run git remote add, followed by git-annex sync. Now the remote is automatically initialized for use by git-annex, where before the git-annex branch had to manually be pushed before using git-annex sync. Note that this involved changes to git-annex-shell, so if the remote is using an old version, the manual push is still needed.
- git-annex-shell: Don't let configlist auto-init repository when in readonly mode.
- Perform a clean shutdown when --time-limit is reached. This includes running queued git commands, and cleanup actions normally run when a command is finished.
- fsck: Commit incremental fsck database when --time-limit is reached. Previously, some of the last files fscked did not make it into the database when using --time-limit.
- fsck: Commit incremental fsck database after every 1000 files fscked, or every 5 minutes, whichever comes first. Previously, commits were made every 1000 files fscked.
- Linux standalone: Work around problem that prevented it from working properly if unpacked into a directory that contains ":" or ";" in its name.
- proxy: Fix proxy git commit of non-annexed files in direct mode.
- proxy: If a non-proxied git command, such as git revert would normally fail because of unstaged files in the work tree, make the proxied command fail the same way.
- proxy: Fix removal of files deleted by the proxied command.
- proxy: Fix behavior when run in subdirectory of git repo.
- Improve Setup.hs file so that cabal copy --destdir works. Thanks, Magnus Therning.
- Tighten dependency on optparse-applicative to 0.11.0.
- Added back debian/cabal-wrapper, since it still seems needed after all.
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.
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