I'm soliciting ideas for new small features that let git-annex do things that currently have to be done manually or whatever. Here are a few I've been considering: --- * --numcopies would be a useful command line switch. > Update: Added. Also allows for things like `git annex drop --numcopies=2` when in a repo that normally needs 3 copies, if you need > to urgently free up space. * A way to make `drop` and other commands temporarily trust a given remote, or possibly all remotes. Combined, this would allow `git annex drop --numcopies=2 --trust=repoa --trust=repob` to remove files that have been replicated out to the other 2 repositories, which could be offline. (Slightly unsafe, but in this case the files are podcasts so not really.) > Update: done --[[Joey]] --- [[wishlist:_git-annex_replicate]] suggests some way for git-annex to have the smarts to copy content around on its own to ensure numcopies is satisfied. I'd be satisfied with a `git annex copy --to foo --if-needed-by-numcopies` > Contrary to the "basic" solution, I would love to have a git annex distribute which is smart enough to simply distribute all data according to certain rules. My ideal, personal use case during the next holidays where I will have two external disks, several SD cards with 32 GB each and a local disk with 20 GB (yes....) would be: cd ~/photos.annex # this repository does not have any objects! git annex inject --bare /path/to/SD/card # this adds softlinks, but does **not** add anything to the index. it would calculate checksums (if enabled) and have to add a temporary location list, though git annex distribute # this checks the config. it would see that my two external disks have a low cost whereas the two remotes have a higher cost. # check numcopies. it's 3 # copy to external disk one (cost x) # copy to external disk two (cost x) # copy to remote one (cost x * 2) # remove file from temporary tracking list git annex fsck # everything ok. yay! Come to think of it, the inject --bare thing is probably not a microfeature. Should I add a new wishlist item for that? -- RichiH > I've thought about such things before; does not seem really micro and I'm unsure how well it would work, but it would be worth a [[todo]]. --[[Joey]] >> Update: Done as --auto. --[[Joey]] --- Along similar lines, it might be nice to have a mode where git-annex tries to fill up a disk up to the `annex.diskreserve` with files, preferring files that have relatively few copies. Then as storage prices continue to fall, new large drives could just be plopped in and git-annex used to fill it up in a way that improves the overall redundancy without needing to manually pick and choose. > Update: git annex get --auto basically does this; you can tune > --numcopies on the fly to make it get more files than needed by the > current numcopies setting. --[[Joey]] --- If a remote could send on received files to another remote, I could use my own local bandwith efficiently while still having my git-annex repos replicate data. -- RichiH --- Really micro: % grep annex-push .git/config annex-push = !git pull && git annex add . && git annex copy . --to origin --fast --quiet && git commit -a -m "$HOST $(date +%F--%H-%M-%S-%Z)" && git push % -- RichiH --[[Joey]]