我有一个在Windows上运行的Jenkins实例,对于其中一项,我需要从CVS存储库中签出。实际上,Jenkins的内置CVS插件正在使用Windows CRLF
行尾对其进行检查。但是,某些需要完成的工作要求文件具有Unix样式LF
行尾。
在整个存储库中运行类似dos2unix
的实用程序似乎很难安全可靠地完成。
我可以通过运行Shell脚本构建步骤来使用Cygwin的cvs,但是我希望与Jenkins更好地集成。
因此,Jenkins可以写出一个脚本来调用外部CVS或在以后使用dos2unix
对其进行修复,可以在Windows上签出带有Unix行尾的CVS存储库吗?
[此后我遇到this bug report,表示此问题自2012年以来就为人所知,对此没有做太多事情。如果有人确实知道我已经提到的替代方法,我将开个问题。
我在Windows的构建脚本中经常添加了dos2unix步骤(automake链对此内容非常敏感),这看起来有点难看/脆弱,但是我认为对于Jenkins构建是可以的:如果由于以下原因而中断了:的新文件,您会遇到构建问题。
根据我的经验,构建中总是有几个平台特定的步骤,因此可以使用一些支持Windows的自定义代码。
一种替代方法是在CVS服务器上将文件标记为“二进制”(-kb标志),并确保它们在此处正确编码,这样可以避免在结帐时进行任何转码,但对我来说似乎更具干扰性。我实际上并没有将其用作源,我认为这可能会弄乱“ diff”命令。
最后一个想法可能是更精确地查看赢盘上期望LF样式结尾的工具,可以部署支持CRLF的mingW或Windows版本。
我的投票总体上仍然是dos2unix解决方案。
如果不想在存储库中将所有文件设为二进制,则可以通过在命令中添加“ -kb”来进行每个签出或更新为二进制。