2008-09-16 171 views

回答

74

它可以通過使用手動識別位於存儲庫中的文件作爲二進制

svn propset svn:mime-type application/octet-stream <filename> 

這通常不是必要的,因爲Subversion會試圖確定文件是否是二進制文件時首先被添加。如果Subversion在應將其視爲二進制文件時錯誤地將某種類型標記爲「文本」,則可以配置Subversion的auto-props feature以使用非文本MIME類型自動標記該文件。無論文件中配置的屬性如何,Subversion仍然以二進制格式將文件存儲在存儲庫中。

如果Subversion標識MIME類型爲「文本」類型的,它使某些特徵不提供二進制文件,如SVN DIFFSVN怪。它還允許自動行結束轉換,這可以在逐個客戶端的基礎上進行配置。

欲瞭解更多信息,請參閱How does Subversion handle binary files?

+6

我需要相反的;使用`text/plain`工作! – Hashbrown 2013-09-12 06:34:52

8

例如:

svn propset svn:mime-type image/png foo.png 
2

作爲每Subversion FAQ,可以使用svn propset命令來改變的svn:mime類型屬性應用/八位字節流

14

基本上,你必須設置MIME類型八位字節流:

svn propset svn:mime-type application/octet-stream <filename> 
0

它通常默認爲您完成此,但如果它是不是你需要查看文件屬性和propset。

19

從367頁的Subversion book

在最一般的意義,顛覆更優雅比CVS不處理二進制文件。 因爲CVS使用RCS,它只能存儲更改二進制文件的連續完整副本。 但是,Subversion使用二進制差異算法 表示文件之間的差異,而不管它們是否包含文本或二進制數據。這意味着所有文件都是 差異存儲(壓縮)在存儲庫中。

CVS用戶必須使用-kb標誌標記二進制文件以防止數據出現亂碼(由於 針對關鍵字擴展和行結束轉換)。他們有時會忘記這麼做。

Subversion採取更偏執的路線。首先,它不會執行任何類型的關鍵字或行結束翻譯,除非您明確要求這樣做(有關更多詳細信息,請參閱「關鍵字 替換」一節和名爲「行尾字符序列」一節) 。 默認情況下,Subversion將所有文件數據視爲文字字節字符串,並且文件始終以以未翻譯狀態存儲在存儲庫中。其次,Subversion維護一個文件是「文本」還是「二進制」數據的內部概念, ,但這個概念只在工作副本中存在。在svn更新期間,Subversion將 在本地修改的文本文件上執行上下文合併,但不會嘗試執行 二進制文件。

要確定上下文合併是否可行,Subversion會檢查svn:mime-type屬性。如果該文件沒有svn:mime-type屬性,或者具有文本的MIME 類型(例如text/*),則Subversion會將其假定爲文本。否則,Subversion 假定文件是二進制文件。 Subversion通過在svn import和svn add命令中運行二進制檢測算法 來幫助用戶。這些命令會產生一個很好的 猜測,然後(可能)在要添加的文件上設置二進制svn:mime-type屬性。 (如果Subversion猜測錯誤,用戶可以隨時刪除或手動編輯屬性。)

手工編輯將通過

svn propset svn:mime-type some/type filename.extension 
+1

如何對導入進行此操作?即,__before__進入存儲庫?我使用的用例是svn不會導入的文件,因爲它認爲它是格式不正確的文本(不一致的行結尾)。但它是**測試數據**,因此該文件是**意圖**具有不一致的行尾...... – 2011-12-20 18:48:13

3

要做如果使用烏龜在Windows SVN,正確的文件點擊並轉到屬性。點擊new並添加一個新的svn:mime-type屬性。對於put value:application/octet-stream

4

雖然Subversion試圖automatically detect文件是否爲二進制文件,但您可以使用svn propset覆蓋MIME類型。 例如,svn propset svn:mime-type application/octet-stream example.txt。這將使您的文件充當字節集合而不是文本文件。另請參閱File Portability上的svn手冊。

+0

只需更新自動檢測算法的鏈接: http://subversion.apache.org /faq.html#binary-files – oldNoakes 2010-03-18 03:58:50

12

如果使用「svn添加」猜測不正確的類型,讓您像下面這樣的錯誤:

svn: E200009: File 'qt/examples/dialogs/configdialog/images/config.png' has inconsistent newlines 
svn: E135000: Inconsistent line ending style 

那麼解決辦法是添加的文件沒有性能和然後在第二步中設置屬性:

svn add --no-auto-props qt/examples/dialogs/configdialog/images/config.png 
svn propset svn:mime-type image/png qt/examples/dialogs/configdialog/images/config.png 
相關問題