ローカル環境でアップデートしたadmin column proを
検証環境に反映した際に動かなくて困った話
dockerのローカル環境では動くソースコードを検証環境へ反映
→検証環境で動かない
→「ACP_Filtering_Model」のクラスがないとエラーになる
→ソースコードを見ても「ACP_Filtering_Model」のクラスは存在する
Q.なぜ検証環境でエラーが出るのか
A.ディレクトリの表記名に間違いがあった
正:Filtering
誤:filtering
でも、そもそもなぜ
ローカル環境で動いて検証環境では動かないのか、
検証環境へは、gitコマンドを使ってソースコードを反映したのにも関わらず・・・
2点の問題
1点目は、
Mac OS Xでは、大文字小文字区別しないため、
ディレクトリの表記名が大文字であろうと小文字であろうと
読み込んでくれてしまう
そのため、mac上で動くdockerでは、
ディレクトリの表記名に間違いがあっても、
動いてしまっていた
検証環境では、Linuxを使っているため、
大文字小文字区別しているので、
動かなかった
2点目は、
gitの設定のデフォルトが、
大文字・小文字の変更は検知しない設定になっていて、
ディレクトリの表記名がリネームされていなかった
問題の解決
1点目の解決について、
Macのシステムボリュームを大文字、小文字を区別するフォーマットにする
→危険なのでやらない
2点目の解決について、
gitの設定を大文字・小文字の変更は検知するように設定
config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
上記を見ると
ignorecase = true
になっている
これをfalseにしてあげることで、
大文字、小文字の変更を検知してくれる
書き換え方は、configを直接書き換えるも良し、
コマンドで書き換えるのも良し
コマンド
$ git config core.ignorecase false
確認用コマンド
$ git config -l --local | grep core.ignorecase
さいごに
gitの設定について、
ちゃんと理解していなかったことが今回の原因
けど、開発環境、本番環境は、できるだけ同じにしないと
不具合が出た時めんどくさいし、怖い
参考URL
Gitでファイル名の大文字・小文字の変更を検知するようにする
Docker for Mac に潜む罠? ファイル名の大文字・小文字の区別