您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > SVN
關(guān)于Subversion系統(tǒng)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2013/2/21 14:31:54 ] 推薦標(biāo)簽:

svn:keywords
Subversion 具有取代關(guān)鍵詞(有關(guān)納入版本控制檔案的有用信息)進(jìn)入檔案內(nèi)容的功能.
舉個例子, 假設(shè)你有個文件, 想要在里面顯示近一次修改的日期. 你可以把這個負(fù)擔(dān)加諸文件的作者身上, 讓他們每一次送交更動之前, 順便添加近一次修改日期的部份. 但是遲早有人會忘記這件事. 換個方式, 只要叫 Subversion 對 LastChangedDate 關(guān)鍵詞進(jìn)行關(guān)鍵詞取代即可.
Subversion 定義了可用來進(jìn)行取代的關(guān)鍵詞列表. 這個列表包含了以下五個關(guān)鍵詞:
LastChangedDate
LastChangedRevision
LastChangedBy
HeadURL
Id
如果只把關(guān)鍵詞定位錨加進(jìn)檔案里的話, 什幺事也不會發(fā)生.要告訴 Subversion 是否該對某一個檔案進(jìn)行關(guān)鍵詞取代,得使用svn:keywords這個性質(zhì)。當(dāng)它被設(shè)定時, 它會控制該檔案哪個關(guān)鍵詞應(yīng)該被取代.
舉個例子, 假設(shè)你有一個納入版本控制的檔案, 名為 weather.txt, 看起來像這樣:
Here is the latest report from the front lines.
$LastChangedDate$
$Rev$
Cumulus clouds are appearing more frequently as summer approaches.
如果沒有設(shè)定該檔案的 svn:keywords 性質(zhì), Subversion 什幺事也不會作. 讓我們開啟關(guān)鍵詞 LastChangedDate 的內(nèi)容取代.
$ svn propset svn:keywords "LastChangedDate Author" weather.txt
property `svn:keywords' set on 'weather.txt'
$
在你送交了這個性質(zhì)更動之后, Subversion 會顯示為:
Here is the latest report from the front lines.
$LastChangedDate: 2002-07-22 21:42:37 -0700 (Mon, 22 Jul 2002) $
$Rev$
Cumulus clouds are appearing more frequently as summer approaches.
這樣不管誰提交這個文件,都會在里面顯示近一次修改的日期。
svn:eol-style
除非另外指定版本控制檔案的 svn:mime-type 性質(zhì), Subversion 會假設(shè)檔案包含人類可讀的資料.這對于列尾符號 (EOL) 是很不幸地, 因為不同的操作系統(tǒng)會使用不同的符號來表示一列的結(jié)尾. 舉個例子, 一般用在 Windows 平臺上的列尾符號是兩個 ASCII 控制字符 :返回字符 (CR) 與換行字符 (LF). 但是 Unix 軟件只使用 LF 字符來表示一列的結(jié)尾.這樣以來window客戶提交的檔案中的CR 字符在 linux客戶端會顯示成 ^M, 而linux客戶提交的檔案中CR 字符在 Windows 客戶端會被忽略。結(jié)果將檔案里的所有文字列合并成一個超長的文字列, 這是因為沒有返回CRLF字符組合的存在來表示一個換行。 解決的方法是 svn:eol-style 性質(zhì). 當(dāng)這個性質(zhì)設(shè)定為native時, Subversion 會根據(jù)系統(tǒng)的類型來決定是否對該檔案的結(jié)尾進(jìn)行自動處理。.
svn:externals
有的時候, 一個工作復(fù)本可能包含了數(shù)個不同來源的工作復(fù)本. 舉個例子, 你可能想要有數(shù)個不同的目錄, 各來自不同的檔案庫.我們可以通過svn:externals 性質(zhì)來宣告這一對對應(yīng)關(guān)系。內(nèi)容是子目錄對應(yīng)至 Subversion 檔案庫 URL 的多行表格.
$ svn propget svn:externals calc
third-party/sounds          http://sounds.red-bean.com/repos
third-party/skins           http://skins.red-bean.com/repositories/skinproj
third-party/skins/toolkit   http://svn.red-bean.com/repos/skin-maker
當(dāng)有人取出 calc 目錄的工作復(fù)本, Subversion 還會繼續(xù)取出在外部定義里的項目.
$ svn checkout http://svn.example.com/repos/calc
A  calc
A  calc/Makefile
A  calc/integer.c
A  calc/button.c
Checked out revision 148.

Fetching external item into calc/third-party/sounds
A  calc/third-party/sounds/ding.ogg
A  calc/third-party/sounds/dong.ogg
A  calc/third-party/sounds/clang.ogg
Checked out revision 14.

Fetching external item into calc/third-party/skins

小結(jié)

Subversion有一份很好的文?——《Version Control with Subversion》(http://svnbook.red-bean.com/)。它提供了有關(guān)Subversion的各方面內(nèi)容,如使用、管理和開發(fā)等。
經(jīng)過數(shù)年的開發(fā),以替代CVS為目標(biāo)的Subversion,相信以其強(qiáng)大的功能,對CVS良好的繼承性,一定會有很好的發(fā)展。

作者簡介
姓名:雷凱
工作單位:升技主板(蘇州)研發(fā)中心
聯(lián)系地址:蘇州市新區(qū)馬運路羅禮科技有限公司研發(fā)中心 郵編 215000
E-mail: tigerleihm@yahoo.com.cn>

參考資料:Version Control with Subversion (http://svnbook.red-bean.com/)

“本文作者是雷凱 升技主板(蘇州)研發(fā)中心工程師。他目前在中國蘇州 升技主板(蘇州)研發(fā)中心工作?梢酝ㄟ^tigerleihm@yahoo.com.cn 與他聯(lián)系。”

上一頁123下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd