[英]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.