1. 技術內幕
- Subversion
- 集中式版本控制的典型代表。CVS 的最佳替代者,是開源軟件安裝量最大的版本控制系統。是開源軟件自身生存和繼續發展的基礎軟件。
- Bazaar
- 與 Ubuntu 一起成長的分布式版本控制系統。實現賣主分支另外的方法,下一代個人版本控制系統。
- SVK
- 用SVK這一在 SVN 上實現的分布式管理系統,曾經作為 Subversion 分布部署的最佳選擇,今天已經顯得過時了。我們有更好的跨地域版本控制的方案。
- Eclipse + Subclipse
- 在最流行的集成開發工具上使用最流行的版本控制工具。
- TortoiseSVN
- 命令行
2. 分布式還是集中式版本控制
分布式版本控制系統已成爆發之勢,越來越多的開源軟件使用諸如 GNU arch, Bazaar, Mercurial, Git, SVK等分布式版本控制系統。 這一方面是開源軟件開發的本質(全部源碼公開,跨地域的開發團隊)決定的,另一方面是管理角度(服務器擴展性,基于信任鏈的代碼提交)。
我們認為了解分布式版本控制系統,對于程序員是必要的,因為:
- 從開源社區汲取營養的需要;
- 對第三方只讀源碼庫維護的需要;
- 下一代個人版本控制工具;
我們認為“集中式”版本控制系統,仍然是商業企業軟件開發中的首選,因為是企業對授權和集中管理的需要。 即使有跨地域開發的需要,我們也可以通過鏡像、代理等方式實現 Subversion 的高效運行。
比較項目
|
分布式(bzr)
|
集中式(svn)
|
性能
|
服務器擴展能力
|
★★★
|
★
|
網絡帶寬占用
|
☆
|
☆☆☆
|
本地保存的完整版本歷史
|
★★★
|
-
|
安全
|
歷史版本的安全驗證
|
★★★
|
-
|
數據安全(BCP)
|
★★★
|
★
|
分支操作
|
代碼合并(merge)能力
|
★★★
|
★★
|
分支管理
|
★★★
|
★★★
|
分支建立速度
|
★
|
★★★
|
用戶界面
|
使用平臺廣泛性
|
★★★
|
★★★
|
命令行可用性
|
★★★
|
★★★
|
Windows圖形界面
|
★
|
★★★
|
權限管理
|
統一的用戶帳號
|
-
|
★★★
|
針對目錄的 Checkout
|
-
|
★★★
|
目錄授權
|
-
|
★★★
|
分支授權
|
★
|
★★★
|
其他
|
遠程版本庫復制
|
★★★
|
★★★
|
離線提交
|
★★★
|
-
|
3. SVN 和 CVS 的對照
我們選擇 Subversion(SVN) 作為企業版本控制工具的首選,而不是 CVS。不是因為我們使用 Subversion 時間更久,也不是因為我們對 Subversion 更有感情。恰恰相反,CVS 很早就已經滲透到我們的血液中。關于 CVS 可以參考我們這個文檔: 《CVS 版本控制》。
多年的使用 CVS 的開發經驗,我們深感 CVS 在使用和管理上的不足。下面是 SVN 和 CVS 的對照。
比較項目
|
CVS
|
SVN
|
權限控制
|
是否依賴系統帳號
|
依賴
|
不依賴
|
可否對分支授權
|
否
|
是
|
是否支持LDAP認證
|
否
|
是
|
圖形化帳號管理
|
否
|
是(集中管理平臺)
|
用戶可否獲取忘記口令,修改口令
|
否
|
是(集中管理平臺)
|
目錄,文件名變更
|
否
|
是
|
分支管理
|
創建分支時間
|
耗時*
|
快
|
分支可見、查詢
|
難
|
易
|
二進制文件
|
二進制優化
|
否
|
是
|
二進制文件標識
|
手工
|
自動
|
二進制文件(圖形文件)被破壞
|
易破壞
|
不易破壞
|
事物處理
|
量子提交
|
否
|
是
|
修改提交說明
|
單個文件
|
是
|
換行符
|
可否指定換行符類型
|
否
|
是
|
檢查換行符設定,避免跨平臺開發帶來的混亂
|
否
|
是
|
功能擴展
|
CVSROOT
|
hooks 腳本
|
網絡帶寬
|
網絡帶寬占用
|
高
|
低
|
脫機命令
|
否
|
部分
|
4. SVN 和 商業版本控制系統的對照
那么商業的版本控制工具如何呢?我們要大聲告訴你,不要!不要把您的核心資產——“代碼”讓他人綁架!
比較項目
|
某商業軟件
|
SVN
|
服務器端存儲
|
是否依賴數據庫(額外的管理負擔)
|
依賴
|
不依賴
|
數據存儲格式是否開放
|
否
|
是
|
是否可以將版本庫導出?以便重建、導入其他項目、分發給第三方或者配置管理軟件切換。
|
否
|
是
|
是否可以對服務器端存儲進行整理
|
否
|
是
|
是否可以徹底刪除配置項
|
否
|
是*
|
可否通過插件進行功能擴展?
|
否
|
是
|
命令行
|
命令行功能是否完備?以便實現工作自動化
|
否
|
是
|
是否可以集成到自動編譯(nightly build)系統?
|
否
|
是
|
文件狀態保持
|
客戶端本地是否有配置文件以保持狀態?
|
否
|
是
|
是否依靠服務器端進行狀態保持?
|
是
|
否
|
客戶端是否可以脫機運行?
|
否
|
是
|
工具整合
|
是否可以和資源管理器整合?
|
否
|
是
|
是否有 Eclipse 插件?
|
否
|
是
|
成本
|
軟件本身成本
|
高
|
低
|
培訓成本
|
高
|
低
|
5. 群英匯:功能擴展
-
與“開源速遞·集中管理”平臺整合;
- Hooks 插件擴展;
- 改進的二進制文件和文件換行符屬性沖突檢查;
- Subversion 管理員命令行;
- 其他 bugfix ...
6. 為什么選擇群英匯
7. 相關文檔
posted on 2008-05-29 11:27
???MengChuChen 閱讀(507)
評論(0) 編輯 收藏 所屬分類:
VSS