2013-05-19 42 views
2

我們目前存在的問題是,存儲在Subversion中的很多文件都缺少mime類型。根據您使用的瀏覽器,在瀏覽Subversion目錄並單擊鏈接時,您會看到文本,例如PDF而不是Acrobat Reader中呈現的PDF。確保mime類型在Subversion中作爲屬性丟失時設置正確嗎?

明顯的解決方案是在Subversion中設置屬性,在本例中設置svn:mime-typeapplication/pdf並在Subversion客戶端配置文件的auto-props中設置相關部分。但是我們很多用戶都不明白這一點,而且我們也沒有控制他們的所有設置,所以會一次又一次地將文件添加到缺少正確MIME類型的存儲庫中。

有什麼方法可以解決這個問題,以及使用它們的缺點是什麼?

回答

1

你最好的選擇是安裝一個預先提交的鉤子腳本,它檢查傳入提交中所有文件的適當MIME類型,如果它不符合你的要求,就拒絕提交(提供一個信息性的消息用戶告訴他們爲什麼他們不能提交)。最終,用戶(即那些關心高效工作的用戶)應該得到提示並照顧自己添加屬性,或者詢問如何設置他們的系統以便他們不必這樣做。

您可能會看到相當於在傳輸過程中修改提交的建議。別理他們。它們很危險,會導致用戶混淆。您也可能會看到建議使用提交後腳本來立即使用服務器端工作副本進行第二次提交。這不太危險,但可能導致競爭狀況。它也會減慢每個人的速度,並立即使提交用戶的工作副本過時,這將會令人難以置信的煩人。

+0

謝謝你的回答,我希望有一些我們可以使用的Apache魔法......我知道Subversion的選項,我不喜歡它們。培訓所有人很好,但有時候,你必須找到一個同樣適用的解決方法... – mliebelt

+0

@mliebelt那裏**是** Apache服務器的魔術幫助! – bahrep

1

如果您使用Apache HTTP Server爲您的Subversion存儲庫提供服務,那麼您應該使用mod_mime模塊來配置默認的介質類型。請參閱文檔Apache Module mod_mime

一般而言,您需要將以下字符串添加到Apache配置中,並將TypesConfig指向mime.types文件。

LoadModule mime_module bin/mod_mime.so 
TypesConfig <path-to-mime.types-file> 
+0

這正是我一直在尋找的。我將與我們的操作團隊取得聯繫,他們必須修改我們的Apache服務器的配置。這需要一些時間,所以我會在一週內回來。 – mliebelt