{
  "slug": "filename-collision",
  "term": "Filename collision",
  "aliases": [
    "File name collision"
  ],
  "definition": "A filename collision occurs when distinct required file names resolve to the same destination entry under a naming or lookup policy.",
  "note": "Identity boundary: stored spelling, canonical Unicode equivalence and case-insensitive lookup are different properties. Linux ext4 documents name-preserving, per-directory case-insensitive lookup; Windows also exposes per-directory case-sensitivity controls. Do not infer destination rules from the operating-system name alone. [ext4] [windows]\n\nVerification consequence: content equality cannot establish that every required directory entry survives. In Hesela's fixed application-transform experiment, two equal-content names collapse to one while both content checks pass. Preserve lossless original names, the intended mapping and a complete output inventory alongside payload checks. This is a scoped acceptance-test lesson, not a filesystem emulator or a backup-product failure rate. [hesela-filenames]\n\nEvidence scope: Basu and colleagues study resource-type collisions and resulting data or metadata changes. Their 2022 preprint motivates destination-specific checks, not a claim that all current copy tools share one behavior. [basu]",
  "status": "shipping",
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-20",
  "advantages": [
    "Explicit collision handling can prevent accidental merging of distinct required entries."
  ],
  "limitations": [
    "A generic Unicode transform does not establish a particular filesystem's complete name-resolution behavior.",
    "Single-component collision checks do not cover links, parent components, pre-existing targets or concurrent changes."
  ],
  "related": [
    "backup-manifest",
    "backup-verification",
    "restore-test",
    "archive-member"
  ],
  "citations": [
    {
      "id": "ext4",
      "title": "Linux kernel documentation: ext4 case-insensitive file name lookups",
      "url": "https://docs.kernel.org/admin-guide/ext4.html#case-insensitive-file-name-lookups",
      "accessed": "2026-10-20"
    },
    {
      "id": "windows",
      "title": "Microsoft Learn: per-directory case sensitivity",
      "url": "https://learn.microsoft.com/en-us/windows/wsl/case-sensitivity",
      "accessed": "2026-10-20"
    },
    {
      "id": "basu",
      "title": "Basu, Sampson, Qian and Jaeger (2022): Unsafe at Any Copy, arXiv:2211.16735v1",
      "url": "https://arxiv.org/abs/2211.16735v1",
      "accessed": "2026-10-20"
    },
    {
      "id": "hesela-filenames",
      "title": "Hesela: Restoring file names: when matching hashes hide a lost entry",
      "url": "https://hesela.com/analyses/filename-identity-backup-restores/",
      "accessed": "2026-10-20"
    }
  ],
  "provenance": [
    "Primary documentation, historical preprint and controlled synthetic observations; no current product vulnerability claim."
  ]
}
