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.20160808 released with these changes
- metadata --json output format has changed, adding a inner json object named "fields" which contains only the fields and their values. This should be easier to parse than the old format, which mixed up metadata fields with other keys in the json object. Any consumers of the old format will need to be updated.
- Added metadata --batch option, which allows getting, setting, deleting, and modifying metadata for multiple files/keys.
- Added --branch option to copy, drop, fsck, get, metadata, mirror, move, and whereis commands. This option makes git-annex operate on files that are included in a specified branch (or other treeish).
- git-annex.cabal: Temporarily limit to http-conduit <2.2.0 since aws 0.14.0 is not compatible with the newer version.
- git-annex.cabal: Temporarily limit to persistent <2.5 since esqueleto 2.4.3 is not compatible with the newer version.
- Removed dependency on json library; all JSON is now handled by aeson.
- When built with uuid-1.3.12, generate more random UUIDs than before. (However, this did not impact git-annex much, so a hard depedency has not been added on uuid-1.3.12.)
- info: When run on a file now includes an indication of whether the content is present locally.
- get, move, copy, mirror: Added --failed switch which retries failed copies/moves.
- Re-enable accumulating transfer failure log files for command-line actions (disabled in 5.20150522), and remove the log files after successful transfers.
git-annex 6.20160619 released with these changes
- get, drop: Add --batch and --json options.
- testremote: Fix crash when testing a freshly made external special remote.
- Remove unnecessary rpaths in the git-annex binary, but only when it's built using make, not cabal. This speeds up git-annex startup time by around 50%.
- Speed up startup time by caching the refs that have been merged into the git-annex branch. This can speed up git-annex commands by as much as a second, depending on the number of remotes.
- fsck: Fix a reversion in direct mode fsck of a file that is present when the location log thinks it is not. Reversion introduced in version 5.20151208.
- uninit: Fix crash due to trying to write to deleted keys db. Reversion introduced by v6 mode support, affects v5 too.
- Fix a similar crash when the webapp is used to delete a repository.
- Support checking presence of content at a http url that redirects to a ftp url.
- log: Added --all option.
- New url for git-remote-gcrypt, now maintained by spwhitton.
- webapp: Don't allow deleting a remote that has syncing disabled, as such a deletion will never finish. Thanks, Farhan Kathawala.
- webapp: Escape unusual characters in ssh hostnames when generating mangled hostnames. This allows IPv6 addresses to be used on filesystems not supporting : in filenames.
- Avoid any access to keys database in v5 mode repositories, which are not supposed to use that database.
- Remove the EKG build flag, since Gentoo for some reason decided to enable this flag, depsite it not being intended for production use and so disabled by default.
git-annex 6.20160613 released with these changes
- Improve SHA*E extension extraction code.
- Windows: Avoid terminating git-annex branch lines with \r\n when union merging and performing transitions.
- Remove Makefile from cabal tarball; man page building is now handled by a small haskell program.
- sync --content: Fix bug that caused transfers of files to be made to a git remote that does not have a UUID. This particularly impacted clones from gcrypt repositories.
- Pass -S to git commit-tree when commit.gpgsign is set and when making a non-automatic commit, in order to preserve current behavior when used with git 2.9, which has stopped doing this itself.
- remotedaemon: Fixed support for notifications of changes to gcrypt remotes, which was never tested and didn't quite work before.
- list: Do not include dead repositories.
- move --to: Better behavior when system is completely out of disk space; drop content from disk before writing location log.
- Avoid a crash if getpwuid does not work, when querying the user's full name.
- Automatically enable v6 mode when initializing in a clone from a repo that has an adjusted branch checked out.
- v6: Fix initialization of a bare clone of a repo that has an adjusted branch checked out.
- v6: Fix bad automatic merge conflict resolution between an annexed file and a directory with the same name when in an adjusted branch.
- v6: Fix bad merge in an adjusted branch that resulted in an empty tree.
- v6: Fix bug in initialization of clone from a repo with an adjusted branch that had not been synced back to master. (This bug caused broken tree objects to get built by a later git annex sync.)
- v6: Make lock and unlock work on files whose content is not present.
- v6: Fix update of associated files db when unlocking a file.
- v6: Make git clean filter preserve the backend that was used for a file.
git-annex 6.20160527 released with these changes
- Split lines in the git-annex branch on \r as well as \n, to deal with \r\n terminated lines written by some versions of git-annex on Windows. This fixes strange displays in some cases.
- assistant: Fix bug that caused v6 pointer files to be annexed by the assistant.
- assistant: Fix race in v6 mode that caused downloaded file content to sometimes not replace pointer files.
- add: Adding a v6 pointer file used to annex it; now the pointer file is added to git as-is. (git add of a pointer file already did the right thing)
- enableremote: Can now be used to explicitly enable git-annex to use git remotes. Using the command this way prevents other git-annex commands from probing new git remotes to auto-enable them.
- enableremote: Remove annex-ignore configuration from a remote.
- Change git annex info remote encryption description to use wording closer to what's used in initremote.
- Pass the various gnupg-options configs to gpg in several cases where they were not before. Most notably, gnupg-decrypt-options is now passed when decrypting an encrypted cipher.
- adjust: Add --fix adjustment, which is useful when the git directory is in a nonstandard place.
- adjust: If the adjusted branch already exists, avoid overwriting it, since it might contain changes that have not yet been propigated to the original branch.
- Work around git weirdness in handling of relative path to GIT_INDEX_FILE when in a subdirectory of the repository. This affected git annex view.
- Fix crash when entering/changing view in a subdirectory of a repo that has a dotfile in its root.
- webapp: Avoid confusing display of dead remotes.
- Support building with ghc 8.0.1.
- Updated cabal file explicitly lists source files. The tarball on hackage will include only the files needed for cabal install; it is NOT the full git-annex source tree.
- debian/changelog, debian/NEWS, debian/copyright: Converted to symlinks to CHANGELOG, NEWS, and COPYRIGHT, which used to symlink to these instead.
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