Skip to content

Registry module names have inconsistent case semantics on case-insensitive filesystems #1961

Description

@peter-jerry-ye

Moon registry module names are treated as case-sensitive, but the registry index stores them directly as filesystem paths. The current index contains these entries:

  • user/xunyoyo/Permutation.index
  • user/xunyoyo/permutation.index
  • user/youyong5/MoonTetris.index
  • user/youyong5/moontetris.index

On a default case-insensitive macOS filesystem, a system Git clone reports that these paths collide, materializes only one path from each group, and leaves the checkout dirty:

 M user/xunyoyo/Permutation.index
 M user/youyong5/MoonTetris.index

The username component is also stored directly as a path and permits uppercase letters, so its case semantics have the same inconsistency even though the current index does not contain two usernames differing only by case.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions