Should check that there is enough free space before trying to copy a file around.
Need a way to tell how much free space is available on the disk containing a given repository.
And, need a way to tell the size of a file before copying it from a remote, to check local disk space.
As of annex.version 2, this metadata can be available for any type of backend. Newly added files will always have file size metadata, while files that used a SHA backend and were added before the upgrade won't.
So, need a migration process from eg SHA1 to SHA1+filesize. It will find files that lack size info, and rename their keys to add the size info. Users with old repos can run this on them, to get the missing info recorded.
done; no migtation process for old SHA1 keys from v1 repo though. --Joey
Keep in mind that lots of small files may have significant overhead, so a warning that it's not possible to make sure there's enough space would make sense for certain corner cases. Actually finding out the exact overhead is beyond git-annex' scope and, given transparent compression etc, ability, but a warning, optionally with a "do you want to continue" prompt can't hurt.
-- RichiH