我在Windows上运行了一个Jenkins实例,对于一个项目,我需要从CVS存储库中检出。事实上,Jenkins的内置CVS插件正在使用Windows CRLF
行结尾进行检查。但是,需要完成的一些操作要求文件具有Unix样式LF
行结尾。
在整个存储库中运行dos2unix
类似的实用程序似乎很安全可靠。
我可以通过运行shell脚本构建步骤来使用Cygwin的cvs,但我更喜欢与Jenkins更好地集成的东西。
因此,如果没有编写脚本来调用外部CVS,或者之后用dos2unix
修复它,Jenkins可以在Windows上查看带有Unix行结尾的CVS存储库吗?
自从遇到this bug report以来,我已经知道这个问题自2012年以来就已为人所知,并且对此事情的处理并不多。如果有人知道我已经提到过的替代方案,我会将问题保持公开。
答案 0 :(得分:1)
我在Windows的构建脚本中经常添加了dos2unix步骤(automake链对这些东西非常敏感),它看起来有点难看/脆弱,但我认为对于Jenkins构建:如果由于新文件而中断,您将遇到构建问题。
根据我的经验,构建中总会有几个特定于平台的步骤,所以支持windows的一些自定义代码似乎没问题。
另一种方法可能是将文件标记为"二进制"在CVS服务器上 (-kb标志)并确保它们在那里被正确编码,这将避免在结账时进行任何转码,但它似乎对我来说更具侵入性。我实际上并没有将它用于消息来源,我认为这可能会使这些消息变得混乱。#34; diff"命令。
最后一个想法可能是更准确地看待哪些工具期望你的胜利盒上的LF风格结尾,你可以部署支持CRLF的mingW或windows版本。
我的投票仍然是整体的dos2unix解决方案。
答案 1 :(得分:0)
如果您不想使存储库中的所有文件都是二进制文件,则可以通过在命令中添加“ -kb”来进行每个签出或更新为二进制文件。