2013-09-24 54 views
1

我們一直有問題,員工無意中將錯誤的SQL文件* .SQL文件提交爲二進制文件而不是文本。是否有一種簡單的方法可以將Collabnet Subversion中以* .SQL結尾的文件格式更改爲文本。問題在於Subversion在文本文件&二進制文件之間進行DIFF時沒有正確顯示修訂版本。如果我們再次作爲文本提交,那麼它是一個文本到文本DIFF。 文本到二進制DIFF表示低於這個時候有變化:Subversion文件被誤認爲二進制

- No changes - 
Diff Legend 

– Removed lines 
+ Added lines 
< Changed lines 
> Changed lines 

任何簡單的方法來轉換或防止不正確的籤? 任何方式顛覆可以檢查文件擴展名是* .sql,並將其轉換/阻止它作爲二進制進行提交? 任何方法來識別所有結尾* .SQL的文件保存爲二進制文件而不是顛覆文本? 這可以在顛覆或與龜沒有任何其他工具?

回答

3

顛覆並沒有真正的文本與二進制模式的文件。所有文件都以相同的格式存儲。

在Subversion中,所有的二進制文件的意思是說Subversion不應該試圖合併這個文件,或者對它做文本比較。

Subversion通過設置名爲svn:mime-type的文件屬性來確定文件是否爲文本文件。如果未設置,則該文件是文本文件。如果已設置,則該文件被假定爲二進制文件。 (如果mime類型以text/開頭,但我不能100%確定,它可能仍然被認爲是一個文本文件)

您需要做的是配置您的mime類型文件以瞭解*.sql文件是文本文件。如果您爲Subversion服務器使用Apache httpd,則可以編輯mime-types文件,該文件通常位於httpd.conf所在的conf目錄中。

您也可以通過在Unix中設置$HOME/.subversion/config文件或在Windows上編輯您的Subversion註冊表項來對每個用戶進行設置。

你要做的是設置一個MIME類型文件,然後將mime-types-file條目指向該文件。

MIME types file僅僅是一個兩列的事務與所述第一列中的MIME類型和在第二列中的後綴。您需要添加這樣的事情:

text/sql    sql 

這將保證在*.sql結尾的文件是一個文本文件。

對於您所輸入的文件,只是刪除對他們的財產:

$ svn propdel svn:mime-type *.sql 
$ svn commit -m"Making my SQL files text files"