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 6.20160126 released with these changes
- Fix nasty reversion in the last release that broke sync --content's handling of many preferred content expressions.
- whereis --json: Urls are now listed inside the remote that claims them, rather than all together at the end.
- info, add, whereis, find: Support --batch mode.
- Force output to be line-buffered, even when it's not connected to the terminal. This is particuarly important for commands with --batch output, which was not always being flushed at an appropriate time.
- add, import: Support --json output.
- addurl --json: Include field for added key (unless the file was added directly to git due to annex.largefiles configuration.) (Also done by add --json and import --json)
- registerurl: Check if a remote claims the url, same as addurl does.
- Bug fix: Git config settings passed to git-annex -c did not always take effect.
- assistant: Use udisks2 dbus events to detect when disks are mounted, instead of relying on gnome/kde stuff that is not stable.
- Fix build with QuickCheck 2.8.2
- matchexpression: New plumbing command to check if a preferred content expression matches some data.
- Removed the webapp-secure build flag, rolling it into the webapp build flag.
- Removed the quvi, tahoe, feed, and tfds build flags, adding aeson feed and regex-tdfa to the core dependencies.
- Roll the dns build flag into the assistant build flag.
- Debian: Avoid building debug package, since gdb is not often useful to debug haskell programs.
git-annex 6.20160114 released with these changes
"hexapodia as the key insight"
- Added v6 repository mode, but v5 is still the default for now.
- unlock, lock: In v6 mode, unlocking a file changes it from a symlink to a pointer file, and this change can be committed to the git repository. For details, see http://git-annex.branchable.com/tips/unlocked_files/
- The upgrade to version 6 is not done fully automatically yet, because upgrading a direct mode repository to version 6 will prevent old versions of git-annex from working in other clones of that repository. For details, see http://git-annex.branchable.com/upgrades/
- init: --version parameter added to control which supported repository version to use.
- init, upgrade: Configure .git/info/attributes to use git-annex as a smudge filter. In v6 repository mode, this makes git add add files to the annex in unlocked mode, unless overridden by annex.largefiles configuration.
- assistant: In v6 mode, adds files in unlocked mode, so they can continue to be modified.
- Added annex.thin setting, which makes unlocked files in v6 repositories be hard linked to their content, instead of a copy. This saves disk space but means any modification of an unlocked file will lose the local (and possibly only) copy of the old version.
- Enable annex.thin by default on upgrade from direct mode to v6, since direct mode made the same tradeoff.
- fix: Adjusts unlocked files as configured by annex.thin.
- persistent-sqlite is now a hard build dependency, since v6 repository mode needs it.
- status: On crippled filesystems, was displaying M for all annexed files that were present. Probably caused by a change to what git status displays in this situation. Fixed by treating files git thinks are modified the same as typechanged files.
- addurl: Added --batch and --with-files options.
- addurl: Support --json, particularly useful in --batch mode.
- addurl: Refuse to overwrite any existing, non-annexed file.
- Debian: Adjust build dependencies for webapp, DAV. Now available on mips, mipsel, but temporarily removed armel since build is failing there.
- info: Fix "backend usage" numbers, which were counting present keys twice.
- info --json: Improve json for "backend usage", using a nested object with fields for each backend instead of the previous weird nested lists. This may break existing parsers of this json output, if there were any.
- whereis --json: Make url list be included in machine-parseable form.
- test: Added --keep-failures option.
- unused: Bug fix when a new file was added to the annex, and then removed (but not git rmed). git still has the add staged in this case, so the content should not be unused and was wrongly treated as such.
- migrate: Copy over metadata to new key.
- rekey: No longer copies over urls from the old to the new key. It makes sense for migrate to do that, but not for this low-level (and little used) plumbing command to.
- view: Fix crash in non-unicode capable locale when entering a view of metadata containing a slash or backslash.
- When annex.http-headers is used to set the User-Agent header, avoid sending User-Agent: git-annex
- Windows: Fix rsync cross-drive hack to work with msys2 rsync. Thanks, Pieter Kitslaar.
git-annex 5.20151218 released with these changes
- Add S3 features to git-annex version output.
- webdav: When testing the WebDAV server, send a file with content. The empty file it was sending tickled bugs in some php WebDAV server.
- fsck: Failed to honor annex.diskreserve when checking a remote.
- Debian: Build depend on concurrent-output.
- Fix insecure temporary permissions when git-annex repair is used in in a corrupted git repository.
- Fix potential denial of service attack when creating temp dirs.
git-annex 5.20151208 released with these changes
- Build with -j1 again to get reproducible build.
- Display progress meter in -J mode when copying from a local git repo, to a local git repo, and from a remote git repo.
- Display progress meter in -J mode when downloading from the web.
- map: Improve display of git remotes with non-ssh urls, including http and gcrypt.
- When core.sharedRepository is set, annex object files are not made mode 444, since that prevents a user other than the file owner from locking them. Instead, a mode such as 664 is used in this case.
- tahoe: Include tahoe capabilities in whereis display.
- import: Changed to honor annex.largefiles settings.
- addurl, importfeed: Changed to honor annex.largefiles settings, when the content of the url is downloaded. (Not when using --fast or --relaxed.)
- webapp: Fix bugs that could result in a relative path such as "." being written to ~/.config/git-annex/autostart, and ignore any such relative paths in the file. This was a reversion caused by the relative path changes in 5.20150113.
- dropunused: Make more robust when trying to drop an object that has already been dropped.
- Fix reversion in handling of long filenames, particularly when using addurl/importfeed, which was introduced in the previous release.
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!
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