本帖最后由 jimu 于 2016-12-14 20:26 编辑
start-shell-msvc2013.bat
问题1:
bolt@bolt-PC /d/zmkj/gecko-dev
$ mach build
0:04.64 c:\mozilla-build\mozmake\mozmake.EXE -f client.mk -s
0:06.84 client.mk:89: *** This source tree appears to have Windows-style line endings.
To convert it to Unix-style line endings, check "https://developer.mozilla.org/en-US/docs/Developer_Guide/Mozilla_build_FAQ\#Win32-specific_questions" for a workaround of this issue.. Stop.
0:06.86 0 compiler warnings present.
2
解决1:
就是回车(CR, ASCII 13, \r) 换行(LF, ASCII 10, \n)。
换行符的问题 autocrlf and safecrlfWindows(\r\n)、Linux(\n)和MacOS(\r)三个主流系统的换行符各不相同,这样在跨平台合作的时候就容易出现换行符的问题。 Git提供了 autocrlf 和 safecrlf 两个参数来解决这个问题。但这两个参数如果没用好,就会影响开发。 例如,出现这种情况: A和B两个开发人员,A使用LF(\n)做换行符,B使用CRLF(\r\n)做换行符,且都没有开启 autocrlf 参数,那么A在迁出B的文件,并使用自己的编辑器打开之后就会发现,虽然没有对文件做任何修改,但它的状态是modified。这是由于A的编辑器自动将B的文件中的所有换行符替换成了(LF),这与版本库中的(CRLF)不同。 让我们来看看 autocrlf 参数的作用: - # 签出时将换行符转换成CRLF,签入时转换回 LF。
- git config --global core.autocrlf true
- #签出时不转换换行符,签入时转换回 LF
- git config --global core.autocrlf input
- #签出签入均不转换
- git config --global core.autocrlf false
复制代码这些选项在TorgoiseGit中也可以设置。 我的建议是在无论在什么系统下编程,都把所有人的编辑器的换行符模式设置成Unix格式,然后把autocrlf设置成false,这样一劳永逸。
毕竟除了Windows记事本这类软件外,已经很少有文本编辑器不支持换行符设置了。 如果你把换行符搞乱了,在一个文件中既包含windows风格的换行符也包含unix风格换行符,那么 safecrlf 就可以发挥作用了: - # 拒绝提交包含混合换行符的文件
- git config --global core.safecrlf true
- # 允许提交包含混合换行符的文件
- git config --global core.safecrlf false
- # 提交包含混合换行符的文件时候给出警示
- git config --global core.safecrlf warn
复制代码 auto CrLf(自动换行符转化) 设置为 false
safecrlf(检查换行) 设置为 warn
然后从日志中重新reset一下
|