My example use case is I have a number of archive remotes. The archive
groupwanted includes approxlackingcopies=1 so numcopies-1 copies get
sent to the archives, along with the 1 local copy. This means that
git-annex drop isn't able to drop files; they need to be manually sent to
one more archive remote first.
Idea: Add a way to make a preferred content expression like
lackingcopies but that excludes copies in a group.
Syntax could be: lackingcopies=number-groupname eg lackingcopies=1-client
Alternatively to excluding a group, it could only look at copies in a
particular group: lackingcopies=groupname:number. This would
correspond well with copies=groupname:number, and so seems better
on that basis.
Both of these approaches would be more general if they supported multiple
groups. Eg lackingcopies=number-client-othergroup or
lackingcopies=archive,othergroup:1.
The nice thing about lackingcopies=archive,othergroup:1 is that it
could be back-generalized to copies=archive,othergroup:1
--Joey
Considering back-compat, older versions of git-annex need to fail to parse the new syntax, rather than misparsing it. So, reusing "=foo:number" is not good, because old git-annex will take "foo" to be the name of a group, and eg "not copies=-offsite=1" would evaluate to true, because there are no copies in group "-offsite".
So I have settled on "=grouplimit=number" with a group limit syntax that supports both including and excluding groups. Eg, "lackingcopies=backup+archive-offsite=1" --Joey