Subversion的屬性是非常好用的功能,它將一些工作自動化,實現為受版本控制的源文件添加元信息的作用。屬性是外部不可見的,可以簡單認為是附加上在文件上的信息,和文件大小之類的信息是一樣的,只不過他是通過subversion來管理的。屬性的名稱和值可以是你希望的任何值,限制就是名稱必須是可讀的文本,并且最好的一點是這些屬性也是版本化的,就像你的文本文件內容,你可以像提交文本修改一樣修改、提交和恢復屬性修改,當你更新時也會接收到別人的屬性修改—你不必為適應屬性改變你的工作流程。
Subversion保留了一組名稱以svn:
開頭的屬性,來預定義一些有用的功能。比如你常會看到一些人的源代碼底部有像下面之類標識的文字:
$Id: main_window.py 68 2008-06-30 02:05:05Z Len $
這就使用了Subversion 中的 svn:keywords的自動屬性,它讓將發生在源代碼中的一些屬性的變化自動地更新到源代碼中。這行字的意思是表示,main_windows.py 這個源代碼文件最后被用戶 len 更新于 2008-6-30 02:05:05Z,修訂版本號為 68。要實現這樣的自動更新,你只要對需要這樣屬性的文件上使用下面這行指令。
> svn propset svn:keywords "Id" main_window.py
或者使用TortoiseSVN中的Properties的操作按鈕,方便地增加新的屬性。接著需要在源代碼文件中需要 Subversion 進行自動更新的地方插入 $Id$ 這樣的 Keyword,那么在你下次進行提交更新時,該$Id$
就會被 Subversion 自動替換為$Id: main_window.py 68 2008-06-30 02:05:05Z Len $
這樣的格式。
Subversion 中可以使用的Keyword 包括下面這些:
- Id
上面介紹過的綜合的格式
- LastChangedDate
最后被修改的時間,縮寫為 Date。
- LastChangedBy
最后修改該源代碼文件的用戶名,縮寫為 Author。
- LastChangedRevision
最后修訂的版本號,縮寫為 Revision。
如果想每次向Subversion服務器提交文件修改時,都要設置文件的屬性,則需要進行Subversion配置的修改。配置文件在你用戶的主目錄下,在Windows下應類似于C:\Documents and Settings\Len\Application Data\Subversion\config
文件,Len是Windows用戶名,注意Application Data是隱藏文件夾,需要顯示全部文件才能看到。接著如下相應的修改,對你想要處理的文件做配置。
enable-auto-props = yes
[auto-props]
*.c = svn:keywords=Id
*.py = svn:keywords=Id
對于開源項目,常見其源文件頭部有著版權聲明的文本,這些操作大多也是通Subversion的屬性功能來完成的,有關更詳細的介紹和操作指南,可參見Subversion中文手冊中的屬性章節。
posted on 2008-06-30 12:06
len 閱讀(1861)
評論(0) 編輯 收藏 引用 所屬分類:
IT技術