Having the option of choosing for every file if we want it in our repository or not would be a great feature. It is currently possible using the wanted expression, but it is not very flexible, or it becomes unmaintainable.
I tried with two repositories a and b, with the following wanted expressions :
- for a:
not metadata=unwanted=<uuid-of-a> - for b:
not metadata=unwanted=<uuid-of-b>
I think those expressions should be included in standard wanted expressions.
Also, to improbe the feature, it should be possible to set (or remove) metadata in directories, and those should automatically affect their content.
And we could imagine a git annex unwant command that would add the unwanted metadata to a file, copy it to other repositories, and attempt to drop it.
I've often thought it would be handy to have a preferred content expression and a requested files list that work together. Which is, I think, similar to what you're saying?
So you could do something like "git annex wanted . --request " which would add it to a list of wanted files, that overrides the preferred content. Then you'd remove them also.
Use case for this would be requesting a file. Syncing the request to, say, a usb. Plugging that usb in somewhere else later, and having those files be automatically transferred. Then when the file reaches the destination it's dropped.
I guess this is possible already with the wanted expressions? What would that look like?
I could imagine adding something to preferred content expressions like
metadatawantedthat looks to see if the metadata contains awantedfield that is the uuid of the repository.I doubt that this belongs in the standard preferred content expression though. But
annex.initwantedcan be used to configure a preferred content expression that you want to use in all new repositories thatgit-annexinits.