如何在Unix行以Jenkins结尾的Windows中检出CVS存储库



我有一个运行在Windows上的Jenkins实例,其中一个项目,我需要从CVS存储库签出。事实上,Jenkins的内置CVS插件正在用Windows CRLF的行结尾检查它。然而,需要做的一些事情要求文件具有Unix风格的LF行结尾。

在整个存储库上运行dos2unix之类的实用程序似乎很痛苦,无法安全可靠地完成。

我可以使用Cygwin的cvs通过运行shell脚本构建步骤来完成它,但我更喜欢与Jenkins更好地集成。

所以,没有编写一个脚本调用外部CVS,或者用dos2unix之后修复它,Jenkins可以在Windows上检查出具有Unix行结尾的CVS存储库吗?

编辑:

我发现这个bug报告表明这个问题自2012年以来就已经知道了,并没有对此做太多的工作。我将保留这个问题,以防有人知道我已经提到的替代方法。

我经常在我的windows构建脚本中添加dos2unix步骤(automake chain对这个东西非常敏感),它可能看起来有点丑陋/脆弱,但我认为对于Jenkins构建来说是可以的:如果它因为新文件而破裂,你会得到构建问题。

根据我的经验,在构建过程中总会有一些特定于平台的步骤,所以一些自定义代码来支持windows似乎是可以的。

另一种方法可能是在CVS服务器上将文件标记为"二进制"(-kb标志)并确保它们在那里被正确编码,这将避免在结帐时进行任何转码,但对我来说似乎更具有侵入性。我实际上还没有在源代码中使用这个,我认为它可能会混淆"diff"命令。

最后一个想法可能是更精确地查看哪些工具期望在win box上使用LF样式结尾,可能有您可以部署的支持CRLF的mingW或windows版本。

总的来说,我还是支持dos2unix解决方案。

如果您不想将存储库中的所有文件都变成二进制文件,则可以通过在命令中添加"-kb"来执行每次签出或更新。

最新更新