[Subversion] Keywords擴展設定

Subversion的Keywords與CVS的有著小小差異。在功能上二者相同,但在處理上則有不同。

CVS只要在Commit的文件中有符合規則的Keywords,就會自動擴展成對應的文字,但Subversion則預設不會擴展,必須針對需要擴展的檔案設定性質(Property) svn:keywords:要用的Keywords,例如:

svn:keywords=Id $Id: t4.jsp 95 2005-09-03 10:14:35Z jerry $
svn:keywords=Date $Date: 2005-09-03 18:14:35 +0800 (星期六, 03 九月 2005) $

不幸的,$Id$的處理和CVS一樣:時間都少了8個小時,而呈現格林威治的零時時間,而$Date$(其實就是$LastChangeDate$的縮寫)則是正確的中原標準時間。

$Id$擴展的內容又和使用的Client而有所不同;eSVN和TortoiseSVN都是產生成上列表格第一列的少了8小時的文字,IDEA透過JavaSVN則產生成類似第二列的有中文的文字,然而IDEA寫回來的中文字是UTF-8的編碼,但Java或JSP若編碼為ANSI-950時,中文字就變成亂碼了。這個亂碼問題除非全面改用UTF-8編碼,否則看來是無解的。

如果專案裡的檔案都要一個一個的去設定性質,那可是太煩人的工作了。為了將Keywords擴展變成是預設的行為,我們必須修改Subversion client的系統設定檔:C:Documents and Settings用戶名Application DataSubversionconfig

把config檔案內做如下修改,即能讓所有檔案自動具有Keywords擴展的功能:

[miscellany]
enable-auto-props = yes
[auto-props]
*.jsp = svn:keywords=Id URL
*.jspf = svn:keywords=Id URL
*.java = svn:keywords=Id URL
*.htm = svn:keywords=Id URL
*.html = svn:keywords=Id URL
*.xml = svn:keywords=Id URL
*.js = svn:keywords=Id URL

##

您可能也會有興趣的類似文章

簡睿

服務於軟體業的資訊老兵。興趣廣泛,學習力佳,樂於分享所知所學。

您可能也會喜歡…

2 個回應

  1. 簡睿表示:

    感謝您的補充與分享。

  2. jeffhung表示:

    修改設定檔裡的 [auto-props] 區塊,只能讓「之後新增」的檔案,自動擁有屬性,對於已經在 repository 裡的檔案,請參考:《Setting svn:keywords in many files simultaneously》http://www.jeffhung.net/blog/articles/jeffhung/436/

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *