如何使用Jenkins的Unix行结尾检查Windows中的CVS存储库?

时间:2015-07-13 18:56:15

标签: windows jenkins cvs line-endings

我在Windows上运行了一个Jenkins实例,对于一个项目,我需要从CVS存储库中检出。事实上,Jenkins的内置CVS插件正在使用Windows CRLF行结尾进行检查。但是,需要完成的一些操作要求文件具有Unix样式LF行结尾。

在整个存储库中运行dos2unix类似的实用程序似乎很安全可靠。

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

因此,如果没有编写脚本来调用外部CVS,或者之后用dos2unix修复它,Jenkins可以在Windows上查看带有Unix行结尾的CVS存储库吗?

编辑:

自从遇到this bug report以来,我已经知道这个问题自2012年以来就已为人所知,并且对此事情的处理并不多。如果有人知道我已经提到过的替代方案,我会将问题保持公开。

2 个答案:

答案 0 :(得分:1)

我在Windows的构建脚本中经常添加了dos2unix步骤(automake链对这些东西非常敏感),它看起来有点难看/脆弱,但我认为对于Jenkins构建:如果由于新文件而中断,您将遇到构建问题。

根据我的经验,构建中总会有几个特定于平台的步骤,所以支持windows的一些自定义代码似乎没问题。

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

最后一个想法可能是更准确地看待哪些工具期望你的胜利盒上的LF风格结尾,你可以部署支持CRLF的mingW或windows版本。

我的投票仍然是整体的dos2unix解决方案。

答案 1 :(得分:0)

如果您不想使存储库中的所有文件都是二进制文件,则可以通过在命令中添加“ -kb”来进行每个签出或更新为二进制文件。