The git-annex package
git-annex allows managing files with git, without checking the file contents into git. While that may seem paradoxical, it is useful when dealing with files larger than git can currently easily handle, whether due to limitations in memory, time, or disk space.
It can store large files in many places, from local hard drives, to a large number of cloud storage services, including S3, WebDAV, and rsync, with a dozen cloud storage providers usable via plugins. Files can be stored encrypted with gpg, so that the cloud storage provider cannot see your data. git-annex keeps track of where each file is stored, so it knows how many copies are available, and has many facilities to ensure your data is preserved.
git-annex can also be used to keep a folder in sync between computers, noticing when files are changed, and automatically committing them to git and transferring them to other computers. The git-annex webapp makes it easy to set up and use git-annex this way.
[Skip to Readme]
|s3||Enable S3 support||Enabled||Automatic|
|webdav||Enable WebDAV support||Enabled||Automatic|
|assistant||Enable git-annex assistant and watch command||Enabled||Automatic|
|webapp||Enable git-annex webapp||Enabled||Automatic|
|production||Enable production build (slower build; faster binary)||Enabled||Automatic|
|android||Cross building for Android||Disabled||Automatic|
|androidsplice||Building to get TH splices for Android||Disabled||Automatic|
|testsuite||Embed the test suite into git-annex||Enabled||Automatic|
|torrentparser||Use haskell torrent library to parse torrent files||Enabled||Automatic|
|magicmime||Use libmagic to determine file MIME types||Enabled||Automatic|
|concurrentoutput||Use concurrent-output library||Enabled||Automatic|
|network-uri||Get Network.URI from the network-uri package||Enabled||Automatic|
|dbus||Enable dbus support||Enabled||Automatic|
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
For package maintainers and hackage trustees