win10与mac,CRLF与LF的坑
我的本地代码接入开发环境后,flywaydb做版本校验时一直报错。
组里其他同事都是用mac做的开发,我用的是windows。
经查,方法org.flywaydb.core.internal.command.DbValidate#DbValidate里,使用了CRC做校验计算。
而windows和mac在这一步时计算结果不一致,导致flyway校验一直不通过。
再查,发现是CRLF与LF的区别。LF的文件,我从git上拉下来后默认就转成CRLF了。
如果我把CRLF本地改成LF,那又会导致文件发生变更,需要进行提交,会很麻烦。
好在git也知道这两个平台的差别,因此有一套关于这个的配置,就是core.autoclrf这个选项,这个选项有如下配置:
- true 提交时转换为LF,检出时转换为CRLF
- false 提交检出均不转换
- input 提交时转换为LF,检出时不转换
我们只需要将这个属性设置成下面这样就可以了
git config --global core.autocrlf false
另外,idea上也坐下配置,保证新建的文件是LF(因为其他同事都是mac,我这边去兼容)