Windows管道的EOL处理

时间:2017-09-22 00:57:27

标签: linux windows git eol concourse

我有带有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中。

1 个答案:

答案 0 :(得分:0)

确保eol保持一致的一个更好方法是通过.gitattributes core.eol rules

管理它们

这样可以避免全局配置(适用于所有 repos)的影响,例如

git config core.autocrlf

如果true,那个全局规则(可能在ConcourseCI上有效)会自动改变eol 但是.gitattribute可以添加到您的仓库中,并且具有优先权。这将确保一致性。