您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > SVN
Subversion佳實(shí)踐
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/27 14:58:04 ] 推薦標(biāo)簽:

這是一套快速入門指南,它可以幫助您在每天的軟件開發(fā)工作中充分使用Subversion。
使用全面的存儲庫布局

安排存儲庫布局的方法有很多。由于分支和標(biāo)簽是普通目錄,因此需要在存儲庫結(jié)構(gòu)中對它們進(jìn)行說明。

Subversion 項(xiàng)目官方推薦采用“項(xiàng)目根目錄”方式,項(xiàng)目根目錄代表項(xiàng)目的錨點(diǎn)。“項(xiàng)目根目錄”包含三個(gè)子目錄:/trunk、/branches 和 /tags。單一存儲庫可以只包含一個(gè)項(xiàng)目根目錄,也可以包含多個(gè)項(xiàng)目根目錄。

參考書目: “選擇存儲庫布局”。

提交合乎邏輯的更改集

對存儲庫提交更改時(shí),需確保更改反映單一目的:修復(fù)特定錯(cuò)誤、添加新功能或一些特殊的任務(wù)。您提交的更改將創(chuàng)建一個(gè)新的修訂號,此修訂號可作為此更改的“名稱”使用。您可將此修訂號記載到錯(cuò)誤數(shù)據(jù)庫中,或?qū)⑺米?svn merge 的參數(shù),這是為了便于今后撤消此更改或?qū)⑺D(zhuǎn)移到其它分支中。

參考書目:第 4 章中的“Subversion 和更改集”邊欄。
靈活使用事件跟蹤工具

嘗試盡可能多地在 Subversion 更改集和您的事件跟蹤數(shù)據(jù)庫之間創(chuàng)建雙向鏈接:

如果可能,在每個(gè)提交日志信息中都引用一個(gè)特定事件 ID。 在事件中附加信息時(shí)(描述進(jìn)度,或結(jié)束事件),為更改提供相應(yīng)的修訂號。 手動(dòng)跟蹤合并

提交合并的結(jié)果時(shí),請務(wù)必要撰寫說明合并內(nèi)容的描述性日志信息,類似于:
/branches/foobranch 的修訂版本 3490:4120 已合并到 /trunk 中。

參考書目: “手動(dòng)跟蹤合并”和“將整個(gè)分支合并到另一個(gè)分支中”。

了解混合修訂工作副本

工作副本的目錄和文件可具有不同的“工作”修訂版本:這一特性是特別設(shè)計(jì)的,目的是允許將舊版本的對象與新版本的對象相混合和匹配。但有一些問題必須注意:
每次執(zhí)行 svn commit 命令后,工作副本都將具有混合修訂版本。剛提交的對象具有新的修訂版本,而其它對象仍為舊的修訂版本。 不允許進(jìn)行的提交包括: 對不具有新工作修訂版本的文件或目錄不能提交刪除。 對不具有新工作修訂版本的目錄不能提交屬性更改。 svn update 可將整個(gè)工作副本統(tǒng)一為一個(gè)工作修訂版本,此為上述第 2 點(diǎn)問題的典型解決方案。

參考書目: “混合修訂版本的限制”。

耐心處理大型文件

Subversion 的另一個(gè)不錯(cuò)的功能是在設(shè)計(jì)時(shí)沒有對它可以處理的文件大小進(jìn)行限制。文件以“流”的形式在 Subversion 客戶端和服務(wù)器之間雙向發(fā)送,并且在網(wǎng)絡(luò)的兩端通常占用較少的內(nèi)存。

當(dāng)然,還需要考慮大量的實(shí)際問題。盡管無需擔(dān)心 KB 級別的文件(例如,典型的源代碼文件),但提交大型文件可能需要花費(fèi)大量時(shí)間和占用大量空間(例如,幾十個(gè)或幾百個(gè) MB 大小的文件)。

開始時(shí),請記住 Subversion 工作副本將所有版本控制文件的原始副本存儲在 .svn/text-base/ 區(qū)域中。這意味著工作副本占用的磁盤空間至少是原始數(shù)據(jù)集的兩倍。不僅如此,提交文件時(shí),Subversion 客戶端還需遵循(現(xiàn)在不可調(diào)整)某種算法:

將文件復(fù)制到 .svn/tmp/(可能需要花費(fèi)一定時(shí)間,并且暫時(shí)占用額外的磁盤空間) 在臨時(shí)文件和原始副本之間,或者是臨時(shí)文件和空白文件(如果新添加)之間執(zhí)行二進(jìn)制差異操作。(可能會花費(fèi)很長的時(shí)間進(jìn)行計(jì)算,盡管終只有少量數(shù)據(jù)會在網(wǎng)絡(luò)中發(fā)送) 將差異發(fā)送到服務(wù)器中,然后將臨時(shí)文件移入 .svn/text-base/

因此,盡管理論上對于文件的大小沒有限制,您需要知道大型文件可能會需要您在客戶端緩慢處理的同時(shí)耐心等待。但是,您可以放心的是,與 CVS 不同,這些大型文件不會使服務(wù)器出錯(cuò),或者是影響其他用戶。

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