git annex unused only looks at tags and branches. Some users would like to drop any objects that are not pointed to by any commit, but keep any object that any commit ever referenced.

This could be a switch, like --ever.

The implementation would need to walk the history of all branches and check all commits. This would tend to be slow. It could look at tags+branches as it does now as a first pass, and only do the slow part if there are objects not referred to by the tags+branches. And, it could stop looking through the whole commit history if there were no more objects to check. Still, gonna be slooow. Another optimisation would be to get only the objects changed by the commit, and not look at the whole tree as it appeared on each commit. --Joey

Closing, --used-refspec allows doing this kind of thing. (It can indeed make it slow!) done --Joey