CODEOWNERS - Overlapping Globs With Documented Winners
Deliberately overlapping rules so every interesting path matches two or three of them, which is the only way to test that a resolver applies last-match-wins rather than most-specific-wins. One rule has no owners at all, which clears inherited ownership instead of adding any.
# Ownership is LAST match wins — the opposite of .gitignore's per-path evaluation
# only in that there are no negations here to reverse it.
* @sample-org/platform
/web/ @sample-org/web
/web/src/format.ts @sample-org/formatting @sample-ada
*.go @sample-org/backend
/internal/ledger/ @sample-org/ledger @sample-ada
/docs/ @sample-org/docs
/docs/security/ @sample-org/security
# A path with no owner at all: an empty owner list clears inherited ownership
/vendor/
# Individual by email rather than by handle
/deploy/ priya.raman@example.invalid
Specifications
- Seed
- 20260807
- Repository Name
- CODEOWNERS
- Rules
- 9
- Match Rule
- last match wins
- Empty Owner Rules
- 1
- Owners By Email
- 1
- Line Endings
- LF
- Encoding
- UTF-8
Testing contract
Expected to pass- Scenario
- Resolve the owners of /internal/ledger/apply.go, /web/src/format.ts, /docs/security/threat-model.md and /vendor/lib.go.
- Expected result
- apply.go resolves to @sample-org/ledger and @sample-ada (not @sample-org/backend), format.ts to @sample-org/formatting and @sample-ada, threat-model.md to @sample-org/security, and /vendor/lib.go to NO owners.
What is a .txt file?
TXT is a plain-text file containing unformatted character data with no styling or structure beyond line breaks. Its interpretation depends on character encoding, most commonly UTF-8, and on line-ending convention. It is the most universal and portable text container.
How to use this file
Use an example TXT to test encoding detection, line-ending (LF versus CRLF) handling, and any tool that reads or streams raw text input.
How to use this file for testing
“CODEOWNERS - Overlapping Globs With Documented Winners” is a deterministic Testaroo fixture for Config parsing, Config testing, Visual diff / regression. TOML and INI configuration files with nested sections and typed values, for testing config parsers and loaders.
Documented properties for this file: seed 20260807 · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such, expect parsers to fail loudly rather than silently accept them.
Diff and patch fixtures name their target paths and the exact edge case they exercise, rename, mode change, binary hunk, CRLF↔LF, or missing trailing newline. Apply or render them against the documented before-state; every author, path, and hash is fictional.
Point your config loader at the file and assert it reads the documented sections and typed values, including any deliberately-tricky nesting or comments.
Generated by generation/version_control.py. Free for any use, no attribution required, license.
Related files
- gitattributesGitattributes - LFS Filters, Linguist Hints and export-ignoreThe non-EOL half of the format: LFS filter/diff/merge triples, `linguist-generated` and `linguist-vendored` hints that hide files from language statistics and review, `export-ignore` entries that drop paths from `git archive`, and a `merge=union` driver for an append-only changelog. Attribute values are unquoted and space-separated, so column alignment is whitespace a parser must collapse.

- gitconfigGitconfig - includeIf Conditions in Four FlavoursEvery conditional-include form git supports (path prefix, case-insensitive path prefix, branch glob, and a condition on an existing remote URL) plus one unconditional include. Order matters: a later include overrides an earlier one, so a parser that gathers includes into a set rather than a list resolves the wrong identity.

- gitconfigGitconfig - Sections, Quoted Subsections and Shell AliasesA realistic global config exercising the whole INI-like grammar: bracketed sections, quoted subsection names that are case-sensitive while section names are not, values with size suffixes, a shell alias whose leading `!` changes how the rest is executed, and both comment characters.

- gitignoreGitignore - Escaped #, !, Bracket and Trailing SpaceEvery escape the format defines, including the one nobody expects: a trailing space is stripped from a pattern unless it is backslash-escaped, so `draft\ ` and `draft` ignore different files. Editors that trim trailing whitespace on save silently change what this file means.

- gitignoreGitignore - Globstar, Anchors and Character ClassesOne pattern per rule in the gitignore grammar: a leading slash that anchors to the containing directory, the same name unanchored, `**` in all three positions, `?` and `[...]` classes, and a trailing slash that matches only directories. Every line is a separate assertion for a matcher's test suite.

- gitignoreGitignore - Negation After a Directory Exclusion (No Effect)The single most misunderstood rule in the format: once `build/` excludes a directory, git does not descend into it, so `!build/keep.txt` is dead. The file is valid and the behaviour is documented: it is the author's expectation that is wrong, which is exactly why an ignore-matcher must reproduce it rather than being helpful.
