2010-08-26 20 views
7

有關我的問題背景:SVN不會diff的它認爲一個是二進制文件持續覆蓋svn的mime到二進制映射?

$ svn diff data/assets/site/ir_gallery/images.kml 
Index: data/assets/site/ir_gallery/images.kml 
=================================================================== 
Cannot display: file marked as a binary type. 
svn:mime-type = application/vnd.google-earth.kml+xml 

最近的一個堆棧溢出的答案(svn diff: file marked as binary type)顯示可以強制MIME類型:

$ svn propset svn:mime-type 'text/plain' data/assets/site/ir_gallery/images.kml 
property 'svn:mime-type' set on 'data/assets/site/ir_gallery/images.kml' 

注在此之前的答案是不完整的......你還必須:

$ svn commit 

現在我的問題是:我可以設置一個默認的,因此日後「vnd.google-earth.kml + XML」文件是由SVN文字處理?紅皮書在這個話題上似乎保持沉默:http://svnbook.red-bean.com/en/1.2/svn.advanced.props.html只表示:

...if a file's svn:mime-type property is set to a non-text MIME type 
(generally, something that doesn't begin with text/, though there are 
exceptions) then... 

什麼例外?這些例外是否納入svn代碼或可訪問?

回答

5

答案取決於你所使用的svn客戶端上。在官方svn客戶端,您正在尋找的選項是Automatic Property Setting。 tl; dr版本是您需要更新您的user or system config,在miscellany部分中將enable-auto-props設置爲yes,然後創建一個名爲auto-props的新部分,該部分定義了要匹配的模式以及要設置的屬性。

爲了您的KML文件,例如:

### Section for configuring miscelleneous Subversion options. 
[miscellany] 
enable-auto-props = yes 

[auto-props] 
*.kml = svn:mime-type=text/plain;svn:eol-style=native 

這將確保當您添加.KML文件到你的資料庫,它將有一個MIME類型的文本/平原將使用行尾原生到客戶的平臺。

+1

他可能更喜歡'* .XML =的svn:mime-type屬性=文本/ xml'因爲KML是一種XML IIRC – akostadinov 2013-08-30 15:05:57

+1

順便說一句,使用svn:mime-type屬性=文本/ ...;部分是至關重要的,因爲如果它不存在,就會有一個初始屬性集將其設置爲非文本application/xml,這會導致svn:eol-style = native錯誤,從而阻止整體文件 - 添加步驟。 mime-type = text/...首先覆蓋文件的二進制特性,以便可以設置eol-style-native。 – macetw 2014-11-11 21:07:11