天天看點

Visual SourceSafe 6.0 安裝配置

Visual SourceSafe 6.0

一、版本管理的必要性

如果說70年代的軟體危機導緻了軟體工程思想的誕生和理論體系的發展,那麼80~90年代尤其是90年代軟體産業的迅猛發展導緻了另一種新思想的産生和實作,這就是軟體的版本管理。

隻要參加過軟體開發的人都清楚,現在的軟體項目完全由一個人來完成是難以想象而且也是不可能的,通常是有一個研發小組來共同分析、設計、編碼和維護,并有專門的測試小組對已完成編碼調試的軟體進行全面的測試。在軟體開發這個龐大而複雜的過程中,需要涉及到各個方面的人員,資訊的交流回報不僅僅是在研發小組的成員之間及各個研發小組之間,還存在于客戶和研發者之間。所有的這些交流回報意見資訊都有可能導緻對軟體的修改,小的可能隻是對某個源檔案中的某個變量的定義改動,大到重新設計程式子產品甚至可能是整個需求分析變動。在這個工程中,由于軟體開發所固有的特征,可能會形成衆多的軟體版本,而且我們并不能保證不出現錯誤的修改,而這樣的一個困難局面卻又非常現實地擺在項目開發管理者的面前,他/她該如何有效地解決這些問題,具體地說就是如下一些問題:

1. 怎樣對研發項目進行整體管理;

2. 項目開發小組的成員之間如何以一種有效的機制進行協調;

3. 如何進行對小組成員各自承擔的子項目的統一管理;

4. 如何對研發小組各成員所作的修改進行統一彙總;

5. 如何保留修改的軌迹,以便撤銷錯誤的改動;

6. 對在研發過程中形成的軟體的各個版本如何進行辨別,管理及差異識辨等等。

一個非常直接的反應,我們必須要引進一種管理機制,一個版本管理機制,而且是廣義上的版本管理,它不僅需要對源代碼的版本進行管理,而且還要對整個項目進行管理。以往的那種被譽為具有良好程式設計風格的做法,諸如在對他人的源程式進行修改時注釋修改原因,修改人和日期,如果是多個成員同時進行了修改,那麼需要進行及時的人工的差異比較和綜合以便形成一個統一的新版本。這種做法在目前的大型軟體的開發中已經越來越沒有空間了,可以說是一種以小作坊的形式來面對軟體的社會化大生産,再也不可能行得通了。

其實,版本管理的思想很早就存在于軟體開發者的頭腦之中,隻是以往的認識沒有現在人們所意識到的那樣迫切。UNIX的程式開發系統較早就提供了能夠進行開發小組中源代碼版本管理的工具,現在的Linux更是提供功能強大的能夠跨平台的版本管理器,國外公司的基于Windows的版本管理器也已經有了比較成熟的産品,國内的研究機關如北京大學計算機系CASE實驗室也在緻力于這方面的工作。在衆多的成熟産品和試驗産品中,這裡隻将對使用比較廣泛,有較大使用者前景且又能較易獲得的版本管理器産品Microsoft公司的Visual SourceSafe 6.0進行詳細的介紹,針對普通的研發小組的解決方案,及具體的實作。

二、Visual SourceSafe 6.0(VSS 6.0)簡介

VSS 6.0現在是作為Microsoft Visual Studio 6.0這個開發産品家族的一員,如Visual C++ 6.0和Visual J++ 6.0一樣。

1. VSS的簡單工作原理

Microsoft的VSS 6.0解決了軟體開發小組長期所面臨的版本管理問題,它可能有效地幫助項目開發組的負責人對項目程式進行管理,将所有的項目源檔案(包括各種檔案類型)以特有的方式存入資料庫。開發組的成員不能對該資料庫中的檔案進行直接的修改,而是由該版本管理器将該項目的源程式或是子項目的源程式拷貝到各個成員自己的工作目錄下進行調試和修改,然後将修改後的項目檔案作Checkin送出給VSS,由它進行綜合更新。VSS也支援多個項目之間檔案的快速高效的共享。當某個成員向VSS中添加檔案時,該檔案将會被備份到資料庫中,以便所有的成員都能共享該檔案。而且每個成員對所有的項目檔案所作的修改都将被記錄到資料庫中,進而使得修改的恢複和撤銷在任何時刻,任何位置都成為可能。小組的成員可能得到該項目的最新版本,對它進行修改,并儲存一個新的版本。

VSS的項目組織管理使得開發小組的協調變得簡單容易且很直覺,當一個和一組檔案發放給另一個成員,小組,Web站點或是任何其他的位址,VSS確定他們之間的真正共享及所選的一組檔案的不同版本的安全性。現在,越來越多的開發者可以通過他們的開發環境來通路VSS的功能。而且VSS可以很容易地于Microsoft Access、 Visual Basic、 Visual C++、Visual FoxPro和其他的開發工具內建在一起,一旦VSS內建到開發環境中,就可以象控件一樣使用,能夠很好地展現出VSS的易用性和強大功能。

2.VSS中的幾個重要概念

為了更好的了解VSS,有必要對如下一些概念給予說明。

首先是項目的概念,所謂的項目是一組存在VSS中的檔案(任何類型),可以在項目中或是項目之間進行檔案的添加、删除、編輯和共享。一個項目與作業系統的檔案夾有很多的相似之處,但它更好地支援檔案合并、曆史和版本控制。所有的檔案存在VSS資料庫的項目中,開發組成員不能在VSS中的主備份檔案上工作(除了檢查和版本比對等特殊情況外)而是VSS為每個成員在各自的工作目錄下提供一個拷貝以供工作。盡管在沒有工作目錄的情況下也可以檢視某個檔案,但如要真正在VSS管理下工作,就必須要建立一個工作目錄。

VSS能夠維護一個檔案的多個版本,包括一個從不同版本之間進行修改的記錄。版本控制包括如下方面:

組内協調—在一般情況下,確定在任何時刻都隻有一個成員對某個特定的檔案進行修改,這樣可以防止檔案被其他成員的修改意外更新。當然,VSS管理者可以改變此預設設定以允許對單個檔案同時有多個Checkout,并且仍禁止對他人的修改進行覆寫。

版本跟蹤—對老版本的源代碼和其他檔案進行歸檔和跟蹤,而且這些版本能夠被重新得到以便進行bug跟蹤或其他目的。

跨平台開發—支援同一代碼在跨多個開發平台時的版本控制。

重用或面向對象代碼—跟蹤哪些程式使用了哪些代碼可被重用的子產品。

版本控制的涵義在以後的章節中将會得到更進一步的論述。

我們已經知道,VSS 提供版本控制和曆史服務,以保證一個檔案的每個版本都是可恢複的。VSS用日期/時間戳來記錄檔案是何時被Checkout或是何時被修改的,它主要有三種方法來跟蹤檔案和項目的版本:

版本号:這是由VSS維護的内部數位,使用者對它沒有控制權。每個檔案和項目的每個版本都有一個版本号,這些版本号總是一個整數且是遞增的。

标簽:這些是使用者賦給某個項目或檔案的某個版本的一個字元串,可以是任何格式的長度不超過31字元的字元串。

日期/時間戳:它給出了一個檔案何時最後被修改的資訊,或者是一個檔案何時被Checkin。VSS同時支援12小時和24小時的時間格式。

工作目錄是使用者真正對項目檔案進行調試修改的地方,當使用者Checkout 或提取一個檔案時,VSS将該項拷貝到使用者的工作目錄下,當使用者修改了該檔案并将其Checkin或送出時,VSS再将它從使用者的工作目錄拷回到VSS的資料庫中。在使用者作Checkout時,VSS将會自動管理他的工作目錄,諸如建立必要的子目錄。而且工作目錄可以随時建立或修改。

3. VSS 6.0的一些新增的特征和功能

歸檔和恢複—在VSS 6.0中這兩個操作是在一個使用者界面友好的VSS管理者wizard中進行的,而在以前的版本中,它們隻能通過指令行來實作。

移動檔案—當使用者移動檔案時,VSS 6.0自動将該檔案共享到一個新的項目中,并在原項目中将其删除。在新項目中,該檔案的屬性是共享的。

多個項目之間的差異比較—該功能允許使用者在不同的項目之間進行差異比較。

單個檔案的展開—在以前的版本中,VSS隻能展開一個目錄(檔案夾),在VSS 6.0中,同時可以展開一個檔案。

快速提取—由于VSS 6.0在性能上的提高,現在的檔案提取速度比以往VSS版本的快兩倍左右。

曆史資訊過濾—VSS 6.0 支援檢視那些沒有标簽的檔案和項目的曆史。

清除臨時檔案夾選項—該新功能可使使用者很友善地清除臨時檔案夾。

檢查外部的超連接配接—在VSS 的較早的版本中,隻有内部的超連接配接和項目内的跳轉才得到檢查,VSS 6.0允許使用者檢查項目之外的超連接配接和跳轉。

建立打開VSS資料庫的快捷鍵—使用者可以使用VSS Explorer中該新功能建立一個打開某個特定VSS資料庫的桌面快捷鍵。

HTML格式的幫助—VSS的以往版本使用的是WinHelp格式。

三、VSS 6.0的解決方案

在對VSS 6.0的工作原理,功能和新增特征有了一個較全面的了解後,我們開始進入到本節,即如何運用VSS 6.0來實際解決軟體開發工程中的版本管理和控制問題,怎樣有效地構架一個系統的解決方案。

首先看一下我們的開發小組所處于的實際情況,最一般的情況是整個項目使用的就是微機環境,每個開發者在各自的Windows微機下利用Microsoft的VC、VB、VJ等等來開發項目中各個子項目或子子產品,通常這個小組是區域網路的一部分或者是一個較為獨立的子網,可能配有專門的伺服器。這樣的一個開發環境對于實作用VSS 6.0來進行版本控制和管理是非常有利而且是比較直覺的,因為VSS 6.0也需要這個網絡環境。

其次是對于項目本身來說的,一個項目經過分析設計後一般都會分成若幹個子項目由若幹個開發小組各自負責編碼調試,但軟體開發的實際情況決定了各個小組之間并不是完全獨立的,他們在很多情況下都需要協調互動和資訊回報,開發過程中的每一步都有可能會導緻對前一階段工作的修正,因為軟體開發很大程度上是一個螺旋式的過程,更不用說小組之内的互相交流了。在這個不斷互動改動的過程中,将可能形成的項目的階段版本、部分版本和完整版本的數量是可想而知的,而以往的通常的版本人工管理方法已是不能勝任了。而且還有一個非常重要的方面不可忽略,這對系統軟體的開發尤為明顯,即軟體的層次結構。一般的做法是在通用的系統軟體之上為多個應用開發相應的應用程式,與此相對照的項目開發組也一般分為系統開發組和各個應用開發組,應用軟體的開發和使用過程中将會回報回無數的應用本身和系統軟體的問題,如果隻是針對每個應用來單獨修改更新系統軟體版本,這樣就不可避免地導緻多個系統版本的不一緻,這樣對于真正解決系統所存在的問題就顯得力不從心了。而VSS 6.0正适合于這種軟體的開發體系結構,可以為各個小組建立自己的項目,而這些項目又從屬于一個總的項目,所有的修改都将被彙總處理以形成一個統一的最新版本。

針對這樣最為普通的一個軟體開發環境群組織結構,運用VSS 6.0進行版本控制管理的非常有效而且代價較小的解決方案是:

在一台Windows NT伺服器或者是一台較為獨立的Windows 98/95 PC上安裝VSS 6.0的伺服器端軟體,建立一個為該整個項目存放用的資料庫,然後在該資料庫中建立各個項目和子項目,并由VSS管理者為小組的每個成員建立一個帳号及他們各自的權限;

在開發小組其他成員的PC上安裝VSS的用戶端軟體,并建立自己的工作目錄,這樣在軟體的開發過程中,他們隻要通過該用戶端軟體登入到VSS伺服器上,Checkout目前要進行工作的項目或檔案,如有修改的在工作結束時将其Checkin送出給VSS伺服器進行統一更新。

解決方案如圖1所示。

四、VSS6.0伺服器的安裝

在我們給出整個解決方案後,現在來看一下如何安裝VSS伺服器。VSS 6.0是Microsoft Visual Studio 6.0 套件的成員,我們就以這個版本為例進行說明。

第一步,将Visual Studio 6.0 的CD1放入CD-ROM,自動進入安裝程式,選擇第二項“Server Applications and Tools(Add Only)”,如圖2所示;

第二步,然後在“Server Setups”的“Server Components”中選擇“Visual Source Safe Server”,按“Install”按鈕後,根據提示放入CD2,如圖3所示;

第三步,根據Installation Wizard的提示,繼續安裝過程,選擇安裝路徑,按圖4左上角的按鈕,系統繼續進行安裝,直至提示你重新開機以使新安裝的程式生效,重新開機計算機。

VSS 6.0伺服器的安裝比較簡單,它既可以安裝在Windows NT下,也可以安裝在Windows 9x下。

五、VSS 6.0用戶端的安裝

在VSS 6.0伺服器安裝完畢後,就可以在VSS管理者的指導下安裝用戶端的軟體。由于我們是在一個Windows環境的子網内,每台PC客戶機均可通過網路上的芳鄰來通路VSS伺服器。在VSS管理者為使用者指明VSS用戶端軟體的安裝程式“Netsetup.exe”的位置後,使用者可以直接通過資料總管“Explorer”在網路上的芳鄰中找到該程式,并輕按兩下以運作它,如圖5所示。

Netsetup.exe被啟動後進入VSS用戶端的安裝,在如下提示框中輸入使用者名和工作組名,如圖6所示。

選擇VSS的安裝路徑後,在圖7中點選安裝圖示,進入實際安裝步驟,以後的工作将由系統自動完成。

當系統提示你,VSS已成功安裝,到此所有的安裝工作已經完成。

六、VSS6.0伺服器的配置和管理

在VSS 6.0伺服器安裝完畢後,就可以針對開發項目進行VSS伺服器的配置和管理,這些工作均需由VSS管理者來完成。

首先,為整個項目建立一個VSS資料庫(在VSS伺服器安裝時,系統已經建立了一個預設資料庫Common),啟動Visual SourceSafe 6.0 Admin(Start /Programs/Microsoft Visual Studio 6.0/Microsoft Visual SourceSafe/Visual SourceSafe 6.0 Admin),跳出如圖8的視窗,點選下拉菜單Tools中的Create Database...菜單項,将出現如圖9的視窗,選擇新資料庫的路徑,例如建立MyApp資料庫,然後點選OK按鈕,系統将完成建立工作。

第二步,為新建立的資料庫(例如MyApp)建立使用者,首先需要打開該資料庫,點選下拉菜單Users/Open SourceSafe Database...,然後選擇資料庫MyApp,打開它,如圖10所示。再選擇菜單項Add User...,輸入使用者名和密碼,如圖11所示。然後依次建立其他的使用者。

第三步,在該建立的資料庫中建立項目Project。啟動Microsoft Visual SourceSafe 6.0 (Start/Programs/Microsoft Visual Studio 6.0/Microsoft Visual SourceSafe/Microsoft Visual SourceSafe 6.0),出現如圖12的視窗,點選下拉菜單File中Open SourceSafe Database...,跳出如圖13的對話框,選擇一個資料庫(例如MyApp),輕按兩下它或按Open按鈕一打開該資料庫;一個項目Project是一組相關的文檔或者是一個檔案的集合,VSS允許你以任何的層次結構來存貯群組織你的項目。在VSS資料庫中,你可以建立一個或者多個項目。點選菜單File中的指令Create Project...,建立一個項目,例如MyProject,如圖14所示;建立完項目MyProject後,需要向MyProject中添加檔案,點選File中Add Files指令,将跳出對話框,選擇相應檔案或目錄,點選Add按鈕,将它們添加到MyProject中去,如圖15所示。

VSS伺服器的配置到此基本上已經完成了,建立了資料庫和項目,并為它們建立了相應的使用者,這樣使用者在用戶端的VC等內建開發環境中就可以直接登入到VSS伺服器上,進行在VSS控制管理下的開發工作。

七、在用戶端的VC中使用Source Code Control

當VSS伺服器端的安裝配置工作全部完成,并在用戶端也完成了VSS的安裝,這樣就可啟用VSS來管理控制整個開發小組的源代碼和文檔的版本管理。本節我們以應用比較廣泛的VC++ 6.0為例來說明如何坐在用戶端運用VSS,以實作所有的開發工作均處于VSS的有效的控制管理之下。

啟動Microsoft Visual C++ 6.0,在VC的內建開發環境中,點選File菜單的Open Workspace 指令,跳出的對話框如圖16所示,與沒有安裝VSS用戶端軟體的VC有一個明顯的差別:在對話框的底部增加了一項“Open a project from source code control source control”。

點選source control 按鈕,将跳出如圖17的登入對話框,輸入你的使用者名和密碼,通過Browse...按鈕選擇你要登入的資料庫。選擇一個項目Project,在文本區輸入它在本地的工作目錄,VSS伺服器将在該工作目錄下拷貝一份源代碼以供使用者開發調試和修改,如圖18所示。其他的操作就如同在本地開發一樣,将滑鼠移至VC視窗的邊框,按右鍵選上Source Control,就會出現Source Control工具條,如圖19所示。選擇Source Control工具條中的相應按鈕,可以完成諸如擷取某項目檔案的最新版本,向VSS資料庫中添加新檔案,将修改後的檔案Checkin送出給VSS資料庫,檢視某個項目檔案的曆史資訊,進行不同版本檔案及不同項目之間檔案的差異比對,還有共享某個項目或檔案。這樣操作起來是不是很輕松呢?!