no_case_conflicts
Flag paths that differ only by case (e.g. README.md + readme.md). They can't coexist on macOS HFS+/APFS or Windows NTFS defaults, so a Linux-only dev committing both breaks checkouts for teammates.
Directories count too: a file Lib beside a directory lib/, or directories Docs/ + docs/, collide. The compared set is the in-scope files plus their ancestor directories, so a directory is reported when in-scope files live under two spellings of it, even if the directory path itself does not match paths:. A collision is reported once, at the shallowest colliding level, not again for every path beneath it; a separate collision inside one directory (docs/a.md + docs/A.md) is still reported alongside a Docs/ + docs/ one.
Options
Section titled "Options"This rule takes no kind-specific options.
Plus the common paths, level, id, when, and expect_matches fields. This table is generated from the JSON Schema; option types and defaults are authoritative.
Example
Section titled "Example"A repo containing both README.md and readme.md
Section titled "A repo containing both README.md and readme.md"The rule fires on this repository:
- README.md
✗ error no-case
case-insensitive collision: README.md (collides with: readme.md)
- other.txt✓
- readme.md
✗ error no-case
case-insensitive collision: readme.md (collides with: README.md)
# upper# lowerWith this .alint.yml:
version: 1rules: - id: no-case kind: no_case_conflicts paths: "**" level: erroralint check reports:
--- README.md ------------------------------------------------------------------ x error no-case case-insensitive collision: README.md (collides with: readme.md)
--- readme.md ------------------------------------------------------------------ x error no-case case-insensitive collision: readme.md (collides with: README.md)
Summary (2 violations): x 2 errors 0 passing * 1 failingFilenames that stay unique when case is ignored
Section titled "Filenames that stay unique when case is ignored"This repository is compliant:
- CONTRIBUTING.md✓
- README.md✓
- src/
- src/lib.rs✓
- src/util.rs✓
# guide# hiWith this .alint.yml:
version: 1rules: - id: no-case kind: no_case_conflicts paths: "**" level: erroralint check reports:
v All 1 rule(s) passed.