2009-01-19 22 views
35

我有一些文件,我沒有正確設置他們的Mime類型而檢入SVN。 SVN最初將它們分類爲二進制。如何明確地告訴SVN將文件視爲文本而不是二進制

我已經通過propset將它們的Mime類型設置爲「text/plain; charset = UTF-8」,並且I'vc確保所有文件都是UTF-8簽名。當我做'svn blame filename'時,svn說這個文件是二進制文件,並沒有給我明確的責備類型輸出。

關於如何說服SVN這些是真正的文本文件的任何建議?

+0

propget是否返回適當的mime類型? – 2009-01-19 18:27:50

+0

感謝您的互動!是的,propget確實會返回正確的類型。我只做了一個: svn propget svn:mime-type filename 輸出: text/plain; charset = UTF-8 – DWright 2009-01-19 18:44:15

+1

@DWright,爲了確認,svn-propset更改本地工作副本中的類型,並且_requires svn commit_用於在存儲庫中更改類型。這兩種類型都需要匹配,並且可以「差異化」以便svn diff/svn blame能夠工作。 – Fox 2014-12-15 06:43:58

回答

46

設置了svn:mime-type屬性只是 「text/plain的」 幫助:

svn propset svn:mime-type text/plain build.xml 
svn commit build.xml 

此外,您還可以強制Subversion的指責時,把一個文件作爲文本:

svn blame file/to/blame --force 
1

This answer有相同的想法,但相反。其中的引文仍然與您的查詢有關。

0

將文件添加到存儲庫後,可能還需要在存儲庫上設置類型。使用URL到存儲庫而不是您的propset命令上工作副本的路徑。

0

看起來像使用mime類型的操作不要說服svn將文件視爲文本。但是如果在第一次提交之前設置了適當的mime-type,那麼svn會正確處理該文件。例如,svn將eclipse .project和.classpath添加爲application/xml,並將它們視爲bin。但是,如果在第一次提交之前將其更改爲text/xml,它們將被視爲文本。

2

我有同樣的問題:我檢查了一些utf8文件(Linux的本地編碼),其中一些被誤認爲是二進制文件並顯示「(bin)」。我沒有深入研究如何發生的錯誤,但查了一下在那裏......

$ svn propget svn:mime-type * 

...指出,覈對無誤,在文本文件中沒有的svn:啞劇財產可言的,只是刪除了svn :來自文本文件的mime-type屬性錯誤地標識了二進制文件。

$ svn propdel svn:mime-type [mislabeled-text-file...] 
$ svn ci -m "zap binary mime-types" [mislabeled-text-file...] 

這似乎工作沒有不良影響。警告:我不知道Windows在這種情況下的表現如何,儘管這很容易測試。

相關問題