簡體   English   中英

如何使用 Jenkins 以 Unix 行結尾檢查 Windows 中的 CVS 存儲庫?

[英]How to check out a CVS repository in Windows with Unix line endings with Jenkins?

我有一個在 Windows 上運行的 Jenkins 實例,對於一項,我需要從 CVS 存儲庫中簽出。 實際上,Jenkins 的內置 CVS 插件正在使用 Windows CRLF行結尾進行檢查。 然而,需要做的一些事情要求文件具有 Unix 風格的LF行尾。

安全可靠地在整個存儲庫上運行類似dos2unix實用程序似乎很痛苦。

我可以使用 Cygwin 的 cvs 通過運行 shell 腳本構建步驟來完成它,但我更喜歡與 Jenkins 更好地集成的東西。

因此,如果沒有編寫調用外部 CVS 的腳本,或者之后使用dos2unix修復它,Jenkins 能否在 Windows 上查看帶有 Unix 行結尾的 CVS 存儲庫?

編輯:

從那以后,我遇到了這個錯誤報告,表明這個問題自 2012 年以來就已為人所知,但對此並沒有采取太多措施。 如果有人確實知道我已經提到的替代方案,我將把問題保持開放。

我經常在我的 windows 構建腳本中添加 dos2unix 步驟(automake 鏈對這些東西非常敏感),它可能看起來有點丑陋/脆弱,但我認為對於 Jenkins 構建來說沒問題:如果它因為新而中斷文件,你會遇到構建問題。

根據我的經驗,構建中總是有幾個特定於平台的步驟,所以一些支持 Windows 的自定義代碼似乎沒問題。

另一種方法可能是在 CVS 服務器上將您的文件標記為“二進制”(-kb 標志)並確保它們在那里正確編碼,這將避免在結帳時進行任何轉碼,但對我來說似乎更具侵入性。 我實際上並沒有將它用於來源,我認為它可能會弄亂“diff”命令。

最后一個想法可能是更准確地查看哪些工具期望在您的 win 框中使用 LF 樣式結尾,您可以部署支持 CRLF 的 mingW 或 Windows 版本。

總體而言,我的投票仍然投給了 dos2unix 解決方案。

如果您不想將存儲庫中的所有文件都設為二進制,您可以通過在命令中添加“-kb”來將每次檢出或更新為二進制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM