2022年12月15日木曜日

Gitでは最初ファイル名の大文字小文字を区別しない

謎な現象に出会いました。


nextプロジェクトをビルドしようとしたのですが、

以下のエラーが発生しました。(ファイル名はちょっと変えてます)


info  - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules

info  - Linting and checking validity of types ..Failed to compile.

./src/pages/xxx.tsx

Type error: File name 'C:/xx/types/SearchRequest.ts' differs from already included file name 'C:/xx/types/searcRequest.ts' only in casing.

  The file is in the program because:

    Root file specified for compilation

    Imported via "../types/SearchRequest" from file 'C:/xx/pages/planForm.tsx'


> 24 | import { SearchRequest } from "../types/SearchRequest";


compilation 、、、

競合?


よく見てみると、、、

ソース上から参照しようとするファイル名 SearchRequest

実際のファイル名 searchRequest

・・・

・・・

先頭のsが大文字と小文字だ!


どうも、他の人が修正したとき、ファイル名を直したそうです。


でも直した情報のうち、ソースの内容はコミットされ

ファイル名変更がgitにのらなかったらしく、不整合が起きているようでした。


こちらを参考に、修正者の設定を変更してもらい、

念のため私の環境も変更しました。


sourcetreeがファイル名の変更を検知しないのでignorecaseをfalseにする


これでエラーも出なくなり一安心。