軟件配置管理中的SVN


一.簡單介紹

1、什么是軟件配置管理

軟件配置管理是指通過運行版本號控制、變更控制的規程。以及使用合適的配置管理軟件。來保證全部配置項的完整性和可跟蹤性。

配置管理是對工作成果的一種有效保護。

2、為什么須要配置管理

假設沒有軟件配置管理,最大的麻煩是工作成果無法回溯。隨着工作的進展新的程序覆蓋了老的程序,當突然發現新程序有問題而老程序正確時怎么辦?那僅僅能重寫老的程序來覆蓋新的程序。過一段時間又發現原來的老程序有問題,而解決方法在原來的新程序中……您是不是快要發瘋了。

為了避免成果被覆蓋。包含我自己在內的非常多人早期採用手工管理版本號的方式。比如當一個新版本號產生時用當時的日期來命名目錄大發生然后再復制一下以后的改動在復制的目錄內進行。這樣上一個版本號就被保存下來了,周而復始不同的版本號不會被覆蓋。

盡管這樣的方式能夠從某種程度上解決版本號的回溯問題,但他存在的缺點是顯而易見的:第一點假設保留結果過於頻繁,將會導致產生大量的有着反復內容的目錄。龐大的物理空間,管理起來非常麻煩;假設保留舊版本號的時間間隔太長,可能產生某些實用的老程序無法回溯。拿我近期開發的一個程序來說程序僅僅有幾十兆,經過一年的開發各版本號累計到1G。第二easy產生版本號的混亂,假設是團隊開發軟件,這樣的簡單的方法更難解決這個問題的本質了。

3、人的問題

配置管理的方法是成熟的,並且對應的軟件工具也是成熟的,基本上不存在看不懂、不會用的問題。

配置管理的運行效果怎樣。全然是事在人為。

妨礙配置管理的主要問題是人們嫌麻煩和僥幸心理作怪。

在沒出亂子的情況下,運行版本號控制看起來有些麻煩。每次改動工作的時候總是要GetLatest Version。接着Check Out。改動完后又要Check In,多做了三步。

事實上這三步加起來也就十幾秒鍾。並且不費腦子,根本沒有加入多少麻煩。不過個人感覺不爽而以。

然而不運行版本號控制的話。萬一發生工作成果被覆蓋或丟失等問題,麻煩就大了。

4、軟件配置管理規范

軟件研發和管理過程中會產生許很多多的工作成果,比如文檔、程序和數據等,他們都應當妥善地保管起來。以便查閱和改動。

假設把全部文件一股腦的塞進計算機里,那么使用起來非常麻煩。

凡是納入配置管理范疇的工作成果統稱為配置項配置項主要有兩大類:一類是屬於產品的組成部分,比如需求文檔、設計文檔、源碼、測試用例等等;還有一類是在管理過程中產生的文檔。比如各種計划、報告等。每一個配置項的主要屬性有名稱、標識符、文件狀態、版本號、作者、日期等。配置項及歷史紀錄反映了軟件的演化過程。

版本號控制的目的是依照一定的規則保存配置項的全部版本號,避免發生版本號丟失或混亂等現象。配置項的狀態有三種:“草稿”、“正式公布”和“正在改動”

配置項的版本與配置項的狀態緊密相關:

(1)處於“草稿”狀態的配置項的版本格式為:0.YZ

(2)處於“正式公布”狀態的配置項的版本格式為:X.Y。

一般僅僅是Y值遞增,當Y值到達一定的范圍時X值才發生變化。

(3) 處於“正在改動”狀態的配置項的版本格式為:X.YZ。 一般僅僅增大Z值,當配置項改動完成。狀態又一次變成“正式公布”時,將Z值變為0,添加X.Y值。


二.初識SVN

1.在進行TortoiseSvn(管理員client)+ AnkhSvn(VS2008插件) +VisualSvn Server(版本號控制server)進行源碼版本號控制前,有必要先了解下Subversion(Svn)。

Svn(Subversion)是近年來崛起的版本號管理工具,是CVS的接班人。

眼下。絕大多數開源軟件都使用Svn作為代碼版本號管理軟件。

Svnclient

Subversion的client有兩類,一類是webSvn等基於web的,一種是以TortoiseSvn為代表的client軟件。前者須要webserver的支持,后者須要用戶在本地安裝client。

Svnserver

Subversion支持linux和windows,很多其它是安裝在linux下。

Svnserver有2種執行方式:獨立server和借助apache。

2種方式各有利弊。

Svn存儲版本號數據也有2種方式:BDB和FSFS。由於BDB方式在server中斷時。有可能鎖住數據,所以還是FSFS方式更安全一點。

VisualSvn 、VisualSvn Server

VisualSvn是Svn的client,和VisualStudio集成在一起。可是是商業軟件,收費;VisualSvn Server是基於Windows平台上的Subversionserver。它是免費的。他詳細包含了Subversion、Apache和一個對應的管理界面。所以推薦使用免費的TortoiseSvnclient以及VS插件AnkhSvn 。

為什么要用Svn,而不用Vss?

同樣點:都能集成在VS2008下進行源碼管理,都能全然內網開發。

不同點:Vss是基於“鎖定--編輯—解鎖”模式的,這個模式有一個弊端。就是當其它人在編輯相關單元文件的時候,此單元文件處於鎖定狀態,其它人假設想編輯這個單元文件的話。僅僅能處於等待狀態。

后來在持續集成中我使用的Subversion替代Vss,Subversion是基於“改動—沖突—合並”的一個模式,也就是說多個人能夠同一時候簽出一個單元文件,編輯然后提交,假設多個人都改動了同一文件的某一行的話。就會發生沖突。手工解決沖突。

Internet開發,和離線開發,VisualSvn會比Vss更勝一籌。

為什么要用VisualSvn Server,而不直接用Subversion?

由於假設直接使用Subversion,那么在Windows 系統上,要想讓它隨系統啟動,就要封裝Svn Server為windws service,還要通過改動配置文件來控制用戶權限,另外假設要想以Web方式【http協議】訪問,一般還要安裝配置Apache。假設是新手,豈不是非常頭痛?而VisualSvn Serve集成了Subversion和Apache,省去了以上全部的麻煩。安裝的時候Svn Server已經封裝為windws service,Apacheserver的配置也僅僅是在圖像界面上,指定認證方式、訪問port等簡單操作;另外,用戶權限的管理也是通過圖像界面來配置。

VisualSvnServer是全然開源和免費的,當然它的官方client(VisualSvn)並不免費,只是沒關系, VisualSvn Serveclient有太多的免費版本號供我們選擇,TortoiseSvn就是一個不錯的選擇。

2.TortoiseSvn 是 Subversion 版本號控制系統的一個免費開源client。能夠超越時間的管理文件和文件夾。文件保存在中央版本號庫,除了能記住文件和文件夾的每次改動以外,版本號庫很像普通的文件server。

你能夠將文件恢復到過去的版本號,而且能夠通過檢查歷史知道數據做了哪些改動。誰做的改動。

這就是為什么很多人將 Subversion 和版本號控制系統看作一種“時間機器”。

3.AnkhSVN是一款在VS中管理Subversion的插件,您能夠在VS中輕松的提交、更新、加入文件,而不用在命令行或資源管理器中提交。並且該插件屬於開源項目。


三.學習小結

經過對於軟件管理的學習。從總體上認識了軟件管理的必要性和重要性,非常大程度上攻克了設計過程中的版本號回溯問題,非常是為設計人員考慮。這也是大家學習的必要性。

有好的管理方法,使得我們的項目設計過程更為靈活和多元化。

而相對於SVN的學習就比較的抽象了,僅僅是裝上了軟件和看看了教學的視頻,還未進行使用,接下來的時間里,從實踐中去認識SVN吧!



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM