Currently, Owners allows multiple packages to own the same file. It does this in two ways:
- Parent/Child: Package A owns `/x/` and Package B owns `/x/y.c`.
- Siblings: Package C owns `/x/y.c` explicitly, and Package D also owns `/x/y.c` explicitly.
Since Owners doesn't have much explicit behavior, these behaviors are sort of implicit. Some reasonable questions about these behaviors:
# Does "Package A" still own `/x/y.c`? That is, does "Package B" having a more specific claim on it invalidate the claim that "Package A" makes?
# Should Package C and Package D be allowed to explicitly own the same file?
The current answers are a little murky. In particular:
- The database and UI allow C and D to be created and to exist.
- The Diffusion browse UI currently shows //all// owning packages, ordered from most-specific to least-specific. In this UI, both "A" and "B" own the file, but "B" has a slightly stronger claim. Likewise, both "C" and "D" own the file, although one of them arbitrarily gets listed first in the UI.
- The Diffusion and Differential table of contents UIs currently show only the //most specific// owning package.
- The Herald and Audit rules allow all of A, B, C, and D to exist and have claims on files.