The old code just parses an invalid key to `TypeInvalid` and uses it as normal, and duplicate keys will be kept. So this PR will ignore invalid key and log warning and also deduplicate valid units.
needs
action
repo.namedBlob
git.TreeEntry
repo.GetOwner
repo.LoadOwner
project.IconName
if-else
setting.Database.UseXXX