我有带有XML文本文件的Windows应用程序,我在Windows上编辑并检查GitHub。这些文件在我的开发机器上具有正确的Windows EOL格式。然后我通过一个Concourse CI管道使用Git资源和一个windows worker来构建一个MSI。当我在Windows机器上安装MSI时,XML文本文件具有Linux EOL格式。
解决此问题的最佳方法是什么?如果我正确理解了Concourse Git资源是一个在Linux上运行的docker容器,那么我可以看到为什么用Unix EOL格式化来检查这些文件,但我不明白为什么在制作容器时它不能转换为Windows格式化可用于Windows任务。
更新:稍微复杂一点我在Linux工作器上运行一些步骤,因此在Linux工作器上使用时,文件需要具有Linux EOL格式。示例...拉一个repos并将其传递给在Linux上运行的作业以执行一堆npm |咕噜声bower类型的东西然后将文件传递给Windows工作者以构建一些ASP.NET Web API项目并使用Linux输出作为Web UI并将其全部打包到MSI中。
答案 0 :(得分:0)
确保eol保持一致的一个更好方法是通过.gitattributes
core.eol
rules
这样可以避免全局配置(适用于所有 repos)的影响,例如
git config core.autocrlf
如果true
,那个全局规则(可能在ConcourseCI上有效)会自动改变eol
但是.gitattribute
可以添加到您的仓库中,并且具有优先权。这将确保一致性。