Linux

從 SVN 送出時不需要的空行

  • June 10, 2012

我使用 CentOS Linux 5.8 作為 Web 伺服器和 tortoise SVN 來同步我們的程式碼版本。我們使用 NetBeans 和 NotePad++ 在 Windows 7 Professional 64BIT 中編寫程式碼。

.php通過以下命令從 Linux Shell 送出程式碼文件 ( ):

svn co svnFolder serverFolder --username **** --password ****

問題是,在送出文件後,當我通過 NotePad++(我正在從 Filezilla 進行查看/編輯)直接從伺服器打開它們(用於調試)時,我有額外的空白行。

在本地主機上看起來像這樣的程式碼(在 NotePad++ 上):

private $producer;
private $account;
private $admin;

private $producerEvents;
private $accountProducers;
private $adminAccounts;

送出到伺服器後將如下所示(同樣,在 NotePad++ 上):

private $producer;

private $account;

private $admin;



private $producerEvents;

private $accountProducers;

private $adminAccounts;

如果我通過 FTP 上傳文件,則不會添加空行。

我該如何解決?謝謝。

您正在從 Windows 系統送出以 CRLF 結尾的文件 - 這通常不會導致任何問題,但在您的 Linux 系統上它有點“異常”。文本編輯器不會像那樣正常顯示雙空格 - 我懷疑這是因為通過 Filezilla 的訪問方法。

由於具有兩種行尾類型的系統都在訪問您的文件,因此最好的方法是讓 SVN 強制執行行尾樣式。

使用 TortoiseSVN 的屬性編輯器來處理您正在使用的文件(或在遞歸模式下,在目錄上)。添加svn:eol-style屬性。

  • LF如果您希望在任何地方都使用 Linux 風格的結尾,請將其設置為LF(Notepad++ 可以正常工作,但如果您在 notepad.exe 之類的文件中打開文件,它會認為這是一行),
  • 或將其設置為native,這將導致每個系統上的簽出副本具有其本機行尾樣式。

該屬性是在單個文件上設置的,因此請確保將該屬性添加到在放置該屬性後創建的任何新文件中。

引用自:https://serverfault.com/questions/397319