軟件配置管理與SourceSafe使用指南

          1、什么是軟件配置管理

          ??? 軟件配置管理是指通過執行版本控制、變更控制的規程,以及使用合適的配置管理軟件,來保證所有配置項的完整性和可跟蹤性。配置管理是對工作成果的一種有效保護。

          2、為什么需要配置管理

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

          ??? 為了避免成果被覆蓋,包括我自己在內的很多人早期采用手工管理版本的方式,例如當一個新版本產生時用當時的日期來命名文件夾,然后再復制一下以后的修改在復制的文件夾內進行,這樣上一個版本就被保存下來了,周而復始不同的版本不會被覆蓋。雖然這種方式可以從某種程度上解決版本的回溯問題,但他存在的缺點是顯而易見的:第一點如果保留結果過于頻繁,將會導致產生大量的有著重復內容的文件夾,龐大的物理空間,管理起來很麻煩;如果保留舊版本的時間間隔太長,可能產生某些有用的老程序無法回溯。拿我最近開發的一個程序來說程序只有幾十兆,經過一年的開發各版本累計到1G。第二容易產生版本的混亂,如果是團隊開發軟件,這種簡單的方法更難解決問題的本質了。

          3、人的問題

          ??? 配置管理的方法是成熟的,而且相應的軟件工具也是成熟的,基本上不存在看不懂、不會用的問題。配置管理的執行效果如何,完全是事在人為。妨礙配置管理的主要問題是人們嫌麻煩和僥幸心理作怪。

          ??? 在沒出亂子的情況下,執行版本控制看起來有些麻煩。每次修改工作的時候總是要Get Latest Version,接著Check Out,修改完后又要Check In,多做了三步。其實這三步加起來也就十幾秒鐘,而且不費腦子,根本沒有添加多少麻煩,僅僅是個人感覺不爽而以。然而不執行版本控制的話,萬一發生工作成果被覆蓋或丟失等問題,麻煩就大了。

          4、軟件配置管理規范

          ??? 軟件研發和管理過程中會產生許許多多的工作成果,例如文檔、程序和數據等,他們都應當妥善地保管起來,以便查閱和修改。如果把所有文件一股腦的塞進計算機里,那么使用起來很麻煩。

          ??? 凡是納入配置管理范疇的工作成果統稱為配置項配置項主要有兩大類:一類是屬于產品的組成部分,例如需求文檔、設計文檔、源代碼、測試用例等等;另一類是在管理過程中產生的文檔,例如各種計劃、報告等。

          ??? 每個配置項的主要屬性有名稱、標識符、文件狀態、版本、作者、日期等。配置項及歷史紀錄反映了軟件的演化過程。

          ??? 基線由一組配置項組成,這些配置項構成了一個相對穩定的邏輯實體?;€中的配置項被凍結后,不能在被任何人隨意更改。基線通常對應于開發過程中的里程碑。通常將交付該客戶的基線稱為一個Release,為內部開發用的基線稱為一個Build。

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

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

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

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

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

          (3) 處于“正在修改”狀態的配置項的版本號格式為:X.YZ。

          一般只增大Z值,當配置項修改完畢,狀態重新變成“正式發布”時,將Z值變為0,增加X.Y值。

          5、常用的配置管理軟件

          A)、自從20世紀80年代后期研制并完善了“增量存儲算法”后配置管理工具的春天便開始了,目前國內常用的配置管理工具大概有SourceSafe、CVS和ClearCase。

          ??? SourceSafe是Micrsoft公司推出的一款支持團隊協同開發的配置管理工具,是Visual Studio的套件之一。因為其短小精悍,又繼承了微軟集成銷售的一貫作風用戶可以相對于免費的價格得到,用戶量絕對是第一位。

          ??? SourceSafe簡單易用人們在使用配置管理工具時候,80%的時間只是用Add,Check in,Check out等區區幾個功能。

          ??? SourceSafe 的主要局限性:只支持WINDOWS不支持異構環境下的配置管理;對INTERNET支持不夠完善。

          B)、在詳細介紹SourceSafe首先簡單概述一下它的基本機制。SourceSafe是使用服務器、本地機的概念來進行操作的,它認為所有需要操作的文件都存在服務器版本文件和本地機版本文件,無論您的SourceSafe的架構是服務器客戶機形式還是個人單機版形式,它的機制都是這樣。用戶所用的修改都是在本地機上完成的,修改完成后再上傳服務器。單機版也是這樣操作。我們一定要明確兩個版本后再來分析。

          ??? 服務器版本文件是一個絕對受配置管理軟件限制的文件,用戶只能通過SourceSafe的規定的權限和操作方法修改它,因為它并不是您一個人的,它是大家的。本地文件是一個基本不受限制的文件,您可以象操作本地文件一樣操作它。

          ??? SourceSafe由Visual SourceSafe 6.0 Admin、Microsoft Visual SourceSafe 6.0、Analyze VSS DB、Analyze & Fix VSS DB四部分組成。

          C)、Analyze VSS DB、Analyze & Fix VSS DB兩個工具不是很常用,前者用于檢查SourceSafe數據庫文件的完整性,后者主要是修正SourceSafe數據庫文件存在的錯誤。

          D)、Visual SourceSafe 6.0 Admin的功能類似于win2k的用戶管理器,軟件配置管理人員用它來分配用戶和設定相應的權限。

          ??? 管理員的管理操作一般都集中在Visual SourceSafe 6.0 Admin中,系統中只有一個系統管理員Admin可以登陸到此程序中進行管理工作,一般剛剛安裝的系統中此用戶的密碼缺省為空。而且系統為Admin這個用戶保留的一切權力,不可更改。

          ??? 數據庫的創建這個操作必須在服務器上執行,因為通過客戶端創建數據庫的操作,只是在客戶端的機器上創建的數據庫,這個數據庫往往只能單機使用。同時要必須注意,由于VSS是通過WINDOWS的網絡共享來完成服務器端受控版本文件的共享,因此VSS服務端的數據庫必須建立在服務器的一個完全共享的目錄之中。否則,客戶端將無法獲得數據庫中的文件。

          ??? 數據庫的備份與恢復,備份數據庫或者其中的一個項目,點擊tools-archive projects…菜單彈出對話框,根據提示一步步進行備份,最后會形成一個擴展名為*.ssa的備份檔案文件。

          ??? 如果要從檔案文件中恢復VSS數據庫中的文件數據,點擊tools-restore projects菜單根據提示一步步完成數據恢復工作。其中,在恢復過程中,可以選擇恢復為原有工程,也可改變恢復成其他工程目錄。

          E)、Microsoft Visual SourceSafe 6.0是SourceSafe的主要使用平臺,樣子象Windows的文件管理器,它所顯示的路經是以‘$’符號為根節點的相對路徑,在這里介紹一下此平臺的主要使用方法。

          (1)添加項目

          ??? 您可以在根節點下添加項目,方法是:File—Add File出現Add File對話框后選中相關文件,按Add即可。

          ??? 你可以繼續通過File-Create Project在根目錄下創建一個項目后在此項目節點下添加文件。

          ??? 添加完文件后,您所添加源文件的屬性自動變為只讀,并在所添加文件的文件夾下生成一個vssver文件 ,以后對文件的操作基本與原文件沒有關系了。

          (2)瀏覽Source Safe Server中的文件

          ??? 在Visual SourceSafe Explore中雙擊要打開的文件,會彈出一個對話框,您直接點擊OK即可。這時SourceSafe Explore會將文件拷貝一份到本地機的臨時文件夾中(臨時文件夾路徑在tools-options-general下設置),因原文件前面提到已經變了只讀,所以臨時文件也是只讀屬性,而且文件名會通過系統自動更改。

          (3)設置工作文件夾

          ??? SourceSafe 的文件夾需要在本地計算機上指定一個“working folder”。當“check out”時,相應文件會下載到這個本地工作文件夾中。我們在本地的文件中修改文件,然后把修改后的文件“check in”回服務器的source safe中。

          ??? 我們可以利用“set working folder”這條命令來建立source safe的文件夾和本地“working folder”的對應關系。方法在source safe的文件目錄樹中選中要建立對應關系的文件夾-右單擊-選擇“set working folder”即可。

          (4)、下載最新版本文件到本地機

          ??? “get latest version”命令可以將一個文件、一組文件或整個文件夾的最新版本從source safe中拷貝到本地的計算機中,并用只讀的形式保存起來。方法如下:

          ??? 在左側的文件樹中選擇相應的文件夾右單擊后,選擇“get latest version”

          ??? 這時會彈出一個對話框,它包括三個復選框:三個復選框全空時,只將source safe文件夾根目錄下的文件拷貝到本地計算機,如同DOS中的COPY命令;recursive選項選中時,會將source safe文件夾下的所有文件夾及文件都拷貝到本地計算機,如同DOS中的DISKCOPY,make writable選中,拷貝到本地的文件是可寫的。

          ??? 如果我們單擊“advance”按鈕,就會出現更多的選擇項。在“set file”中的四個選項第一如下:current為拷貝操作發生時的當前時間;Modification為文件最近一次修改的時間;check in為文件最后一次check in是的時間;default同current.

          ??? 在replace writable中的四個選項作用是,當本地機有一個和要下載的文件同名時,且本地機的文件是可寫的同名文件時,設置系統如何執行拷貝:ask系統提示是否覆蓋本地的同名文件;replace自動覆蓋本地的同名文件;skip不覆蓋本地的同名文件;merge將兩個文件合并。

          ??? 一定要養成先Get Latest Version的習慣,否則如果別人更新了代碼,VC會提示你存在版本差異并問您是否覆蓋、整合、保留等,如果選錯了就會把別人的代碼Cancel掉,所以一定小心。

          (5)下載文件到本地操作

          ??? 當我們要修改一個文件時,首先要把文件從source safe中復制到“working folder”中,并且以可寫的形式保存,這一系列動作的命令就是check out。具體使用方法如下:選擇要下載到本地機的文件,右單擊后選擇check out,這時會彈出一個對話框。缺省的狀態下“don’t get local copy”這個選項是不選的,他的意義是這樣的:如果不選保持缺省狀態,當本地的同名文件是只讀時,則系統首先用source safe的文件更新本地的文件,本地的文件變為可寫。當本地的文件是可寫時,則會出現另一提示框其中的選項leave this file:本地文件保留當前狀態,source safe中的文件也保留當前狀態,這樣有可能兩個文件不一致。選項Replace your local file with this version from source safe:用source safe中的文件更新本地的文件。如果您選擇don’t get local copy選項:則不把source safe的文件拷貝到本地。

          ??? 文件check成功后,您可以看到文件上有紅色標記,這時您的本地文件是可寫的,您就可以修改文件了。上面的選項也許讓您心亂,為了操作更簡便,我們推薦一種check out 方法:

          ??? 當本地的文件比source safe中的文件內容新時,選擇don’t get local copy選項。然后check in使本地機與服務器內容同步;

          ??? 當source safe中的文件比本地機的文件內容新時,則在source safe中選擇此文件,然后get latest version命令,然后按照默認選項進行check out;

          ??? 當兩者內容相同時,按照默認選項操作。

          ??? 注意:source safe中使用了文件鎖的概念當一個文件被別人check out時,其他人不能check out 此文件;如果文件鎖是無效的,您可以查看Visual SourceSafe 6.0 Admin-tools-general-allow multiple chechouts選項是否被選中。只有當check out 修改文件完畢后,一定要check in,來保證source safe中的文件最新。

          ??? 謹記check out時將是使得代碼對自己可寫,對別人只讀,請僅僅Check Out自己需要修改的部分,不然你工作的時候同組成員只能休息了。

          (6)上傳文件到服務器操作

          ??? 我們必須利用 check in命令保證source safe本地的文件同步,check in與check out 成對出現,它的作用是用本地的文件更新source safe中被check out 的文件。

          ??? 具體操作在source safe選中處于check out狀態的文件,右單擊選擇check in即會出現一個對話框:默認狀態下它的兩個復選框處于非選狀態,Keep checked out選項,可以在check in 后自動的再次check out,等于是省略了下一步check out操作;remove local copy選項,可以在check in的同時,刪除本地機上working folder中的同名文件。

          ??? 一般按照缺省選項就可以了。Check in成功后,source safe和本地的文件是完全相同的,本地的文件變成了只讀文件。要再次修改文件時,再執行check out操作,此時本地機的文件屬性自動變為可寫狀態。一定記住check out 后要check in,不然導致的后果就如同寫完了文件不保存差不多。

          ??? 一定要保證你的文檔正確、可編譯后再Check In不然會使得其他人也無法通過編譯,整個工程沒法調試了。

          (7)undo check out 操作

          ??? 當一個文件被check out 后,您如果想要撤銷這項操作,可以使用undo check out命令,操作步驟:選中處于check out 狀態的文件,右單擊后選擇undo check out.

          ??? 當source safe中的文件和本地的文件完全相同時,則不出現提示信息,文件恢復為普通狀態。

          ??? 當source safe中的文件和本地的這個文件不完全相同時,則出現提示窗口,對話框local copy中包括三個選項:

          ??? replace選項選中后會出現,系統詢問是否覆蓋的信息,如果單擊yes則是用source safe上的文件最后一個版本覆蓋本地機上的文件,如果選擇no保留本地計算機上文件的內容,source safe上的文件是上次check in后的內容。此時,兩個文件可能出現不同;

          ??? leave選項保留當前計算機上的內容,source safe上的文件是上次check in后的內容,兩個文件可能出現不同;

          ??? delete 選項刪除本地計算機上的這個文件。

          ??? 選擇一個選項后,單擊OK后,文件回到普通狀態。

          (8)edit操作

          ??? edit命令是一個組合命令,是先check out再修改的命令的組合。應當注意的是,執行edit命令后,我們修改了文件,但是source safe中的文件并沒有同步的修改,我們還是要check in完成本地文件與source safe上文件的同步。

          (9)查看文件的歷史內容

          ??? 方法選中此文件,右單擊選擇show history,出現一對話框后,經選擇OK后彈出一窗體,我們可以看到這個文件的所有版本,要查看某個版本可以選中VIEW按鈕。如果想下載某個先前的版本可以點擊get按鈕。

          (10)關于source safe的權限

          ??? 缺省狀況下,項目安全管理是以簡單模式來運行,即用戶對工程的操作的權限只有兩種,一種只讀權限,一種讀寫權限。要啟用高級模式,可以在Visual SourceSafe 6.0 Admin-tools-project security-enable project security將此選項選選中。

          source safe的權限分為5級:

          無權限級:看不到文件

          read級:自能瀏覽文件,可以使用get latest version命令

          check in/check out級:可以更新文件,但不能對文件進行刪除

          delete級:可以刪除文件,但通過某些命令這些文件還能恢復。

          Destroy級:可以徹底的刪除文件,刪除之后無法恢復。

          為用戶設定權限的工作一般由軟件配置管理員在Visual SourceSafe 6.0 Admin中完成。

          ??? 權限管理就是管理用戶和工程目錄之間的操作權限的關系。因此,有兩種管理方式。一種就是以工程目錄為主線來管理權限,一種是以用戶為主線來管理權限。

          ??? 以目錄為主線管理用戶權限則點擊tools-right by project…菜單,彈出對話框來管理項目的用戶訪問權限。

          ??? 如果以用戶為主線來用戶權限,則應先在主界面的下方的用戶列表中選中一個用戶,再點擊rights assignments for user…菜單,彈出對話框,對話框下方列出了該用戶對數據庫各項目目錄的訪問權限,如果訪問某個項目在列表上沒有列出,則說明該項目的權限是繼承上級目錄的訪問權限。只要您點選一個目錄,就可以編輯該用戶對該項目目錄的訪問權限。

          ??? 權限復制就是將一個用戶的權限直接復制給另外一個用戶,管理員可以通過copy user right…菜單來實現。

          (11)關于password的更改

          ??? password一般是由軟件配置管理員分配的,如果我們需要修改密碼,可以在tools-change password 下修改。

          ??? 需要說明的一點是當你的source safe密碼和windows密碼相同時,啟動source safe,不會出現提示您輸入密碼的對話框。這是微軟的的一貫作風,在SQL server數據庫管理系統下也能找到這個影子,因為微軟認為windows的密碼應該比其他軟件的密碼級別要高,既然您能用相同的用戶名和密碼進入windows那么您也有權使用相同的用戶名進入其他的軟件。

          posted on 2006-05-28 22:21 77 閱讀(650) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2006年5月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          導航

          統計

          常用鏈接

          留言簿(12)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞檔案

          相冊

          API文檔

          java開發與研究

          にほん

          上海房產

          東京生活

          數據庫大全

          編程與開發

          美國開發生活

          走向管理

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 河间市| 辽源市| 达州市| 卫辉市| 米林县| 哈尔滨市| 边坝县| 贵定县| 化州市| 会同县| 平塘县| 湖南省| 佳木斯市| 富裕县| 稷山县| 北辰区| 林周县| 章丘市| 南汇区| 喀喇沁旗| 望谟县| 闽侯县| 彭水| 南靖县| 惠水县| 天水市| 溧阳市| 霞浦县| 天峻县| 阿拉善右旗| 汉寿县| 兴业县| 深水埗区| 启东市| 杭锦旗| 泉州市| 鞍山市| 乌鲁木齐市| 丹凤县| 阳春市| 洛宁县|