1 什麼是SCM軟體組態管理((Software configuration management)?
軟體組態管理是指通過執資料列版本設定、變更控制的規程,以及使用合適的組態管理軟體,來保證所有配置項的完整性和可跟蹤性。組態管理是對工作成果的一種有效保護。
它是為瞭解決開發過程中不過更新版本時遇到的各種問題,如版本過多找不到最新版本、多人操作一個檔案造成的時間、空間衝突、程式誤刪、修改過的檔案為什麼修改什麼時間修改的等等問題,而且開發無法回溯到以前某個階段,早起,人們通過手工建立檔案夾來管理,這樣未免太浪費空間,並且,效率低下。
通過軟體配置軟體可以集中解決這些問題,使開發高效進行,這也是SCM系統逐漸形成併流行的原因。
2 軟體組態管理規範
軟體研發和管理過程中會產生許許多多的工作成果,例如文檔、程式和資料等,他們都應當妥善地保管起來,以便查閱和修改。如果把所有檔案一股腦的塞進電腦裡,那麼使用起來很麻煩。
凡是納入組態管理範疇的工作成果統稱為配置項,配置項主要有兩大類:一類是屬於產品的組成部分,例如需求文檔、設計文檔、原始碼、測試案例等等;另一類是在管理過程中產生的文檔,例如各種計劃、報告等。
每個配置項的主要屬性有名稱、標示符、檔案狀態、版本、作者、日期等。配置項及曆史紀錄反映了軟體的演化過程。
基準由一組配置項組成,這些配置項構成了一個相對穩定的邏輯實體。基準中的配置項被凍結後,不能在被任何人隨意更改。基準通常對應於開發過程中的裡程碑。通常將交付該客戶的基準稱為一個Release,為內部開發用的基準稱為一個Build。
3 SCM系統重點在於應用,早起的一些軟體有SCCS 、Codemar、 TeamWare 、RCS 等等,這裡就不在詳細介紹,他們在使用過程中逐漸暴露出一些缺點,已不再流行應用,目前應用比較廣泛的是CVS和SVN。
他們都是很好的軟體組態管理系統,SVN是一個開源的版本控制系統,它可以記錄所有的檔案修改版本。CVS也是一個版本控制系統,可是現在大家更多的是用SVN,因為SVN不但繼承了CVS的優點,而且還有許多的功能是CVS所不具備的,比如建立標誌和分支dubious,人們用它的比較普遍,逐漸取代了CVS。
我們用它需要安裝一個伺服器和用戶端軟體,推薦大家兩個subvision伺服器,用戶端為TortoiseSVN,tortoiseSVN 只是SVN 的一個圖形化的操作介面, 有了這兩個,就可以建立起強大的svn 伺服器了。另外還有一個可視化的,VisualSVN-Server和VisualSVN,分別為伺服器、用戶端。
這是VisualSVN-Server介面:
TortoiseSVN官網:http://tortoisesvn.net/downloads.html
Subversion官網(現在的最新版本是到了1.7.4了):http://subversion.apache.org/
大家也可以留言,我會把setup發給大家。