git-annex is in a mode of continual user-driven improvement, involving numerous
small issues and often easily implemented ideas.
Here are some larger/ongoing plans for git-annex, in no particular order.
Speed improvements, including:
* Speed up git checkout in v7 repository by
improving git's smudge/clean filter interface, or some other approach, to avoid needing to fork
git-annex once per file during the checkout.
* Improve speed of git-annex when operating on large numbers of files.
Approaches include better caching of data, and using ByteString
more where String is used, and other better data structures.
* Enable parallelism by default.
Improvements to tree export support, including supporting export to more
external special remotes, exporting only preferred content, more
efficient renames, and improving support for exporting non-annexed files.
Complimenting tree export, support importing trees from special remotes so eg a
S3 bucket of data can be pulled into a git-annex repository easily, and the
repository updated when the bucket is changed.
Improve support for branches where annexed files without content locally
present are hidden (adjust --hide-missing). Including interface for
operating on hidden files to get them, speeding up generation of the
branch, and updating it more frequently.
Also unify adjusted branches and view branches.
Improve Windows support. Long filenames may be possible on Windows now
thanks to fixes in recent versions of ghc. Further improve using
git-annex in Windows Subsystem for Linux (WSL). Get Windows fully
supported with no caveats. Possibly even supporting indirect mode with
symlinks.
Add more special remotes, and/or ship a collection of existing external
special remotes as part of git-annex. Improve existing special remotes,
eg adding support for Glacier lifecycles to S3.
Deltas to improve transfer of modified versions of files.