Here is my situation, Say I have a repo that is 3 TBs (lets call this repo A has full copy of everything.) and I have 3 other drives all 1 TB each lets call them B C D, then I have partial checkouts on my laptops D E. What I would like to do is, have two copies of all files in A and BCD I would like to threat BCD as a group acting like a single repo so A distributes files evenly to drives in group BCD. I also want copies in D and E to not count towards num of files. As for the latter even though I set D and E as untrusted annex still counts copies on those repos If a get a file in D assistant drops a copy from one of the trusted repos A or BCD I have to move it back instead of just dropping it. Also How can I or is it possible to set BCD to act as a group so A distributes files among drives currently I can do this using find/get but it turns it into a math problem every time a add a file to A I have to manually check which disk has most space navigate to it check files with less copies then 2 and get them.
git-annex doesn't allow bonding repositories like that, but it does have repository groups which can accomplish the same thing.
For example, if you put B C and D into the archive group, and set the preferred content expression to "standard", then each repository will only want files that have not yet reached some other archive repository.
Or, you can make up your own group name, like "BCD" and set the preferred content of each repository to something like "not (copies=BCD:2)" -- and now it will try to have 2 copies of each file on one of the drives.
Once it's configured, using either the git-annex assistant, or
git annex sync --content
will copy files around according to the configuration.This will tend to fill up the first drive, or the first 2 drives, and only use subsequent drives if files don't fit on the first drive. You can use ?cost settings to control which drives files are put on.