簡體   English   中英

CVS行結尾

[英]CVS line endings

我們在不同平台上都有大量使用CVS的程序員。

我們有開發人員使用帶有TortoiseCVS的窗口(使用cvsNT)

我們有開發人員使用ubuntu 8.04

我們的開發人員有兩個盒子Ubuntu和windows。

不同開發人員在不同平台上使用各種不同的編輯器。

我們在線路結束時遇到了很大的問題。 這表現為文件中行結尾數量的不斷增長。

據我所知,TortoiseCVS使用cvsNT,它假設存儲庫中有UNIX行結尾。 當你簽出時,它將UNIX行結尾轉換為windows行結尾,當你提交它時,將windows行結尾轉換回UNIX行結尾。

在ubuntu中,cvs客戶端不進行轉換,因為存儲庫應該是UNIX行結尾,而linux也使用UNIX行結尾。

這一切都很好,只要Windows上的每個人都使用基於cvsNT的客戶端。 沒有人切換他們的操作系統。

可悲的是,使用Ubuntu和Windows機器的人經常切換,可能會在不同的操作系統上簽出,編輯或提交。

結果他們最終使用具有Windows行結尾的linux CVS客戶端提交文件。

當在Windows上使用cvsNT客戶端簽出時,CRLF將轉換為CRCRLF,顯示為兩行。 這種情況發生的次數越多,文件中出現的新行就越多。

有沒有辦法讓Linux上的CVS將任何Windows行結尾轉換為提交的UNIX行結尾,以防止這種情況發生。 這樣,CVS服務器將只有UNIX行結尾。

任何其他建議如何克服這一點也是受歡迎的。

一種方法是要求開發團隊強制執行行結束。

linux和unix上的dos2unix和unix2dos工作得很好。 Windows上的cywgin將提供一個實現。

您可以使用一個腳本來清理人們在簽入之前運行的行結尾。

我的主要建議是切換到另一個版本控制系統或關閉魔術線源。 我從來沒有為我提供魔術換行轉換,我的開發團隊一直都有標准編碼。 它沒有完美的工作,但它的工作非常好。

您還可以編寫一個簡單的腳本,該腳本將在持續集成環境中運行,以掃描增加換行符的更新。 然后,您可以拒絕更改或清除問題。

祝你好運,雅各布

我看到用CVS弄亂行結尾的唯一原因是你將文件從一個操作系統復制到另一個操作系統。 如果你這樣做,你就是在手動規避VCS。 那當然是在惹麻煩。 所以要么停止這樣做,要么記得自己清理干凈。

我不知道在CVS中自動檢查甚至修復此問題的方法。 您考慮過切換到SVN嗎? 它的預提交鈎子可能是一種方法。 OTOH,一旦你進入SVN領域,憑借對快速創建和銷毀私有分支的支持,你可能永遠不再繞過VCS:在一個平台上創建一個分支,在另一個平台上檢查你的更改,在另一個平台上平台切換到該分支,並繼續在那里工作。 重復完成,將分支合並到主干中,然后將其刪除。 不要將文件從一台機器偷偷帶到VCS后面的另一台機器上。 不用擔心的一件事。

您可以使用常規命令選項“--lf”強制unix行結束。

例如:cvs --lf up

暫無
暫無

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

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