摘要 專業的軟體開發需要對在開發過程中每一應用程式的原始碼修改的管理進行流水線處理。Microsoft_ Visual SourceSafe?記錄了系統、項目和檔案級修改的記錄,允許你安全的在多個程式員之間分配開發工作,跟蹤修改資訊,並恢複個別檔案或整個應用程式的早期版本。 簡介 代碼是寶貴的資源。為了保護它,很多開發人員應用一些版本控制系統以保護檔案避免未授權的修改和意外的錯誤。這些系統有很多種,從有關程式注釋的更改和儲存舊版本的君子協定到自動跟蹤修改和記錄的複雜的軟體系統都有。 大多數來源控制系統對於單獨的源檔案是有效。但是,它們幾乎全部不能在檔案間建立關係。這在Microsoft Windows的環境中將引起問題,因為在該環境中,一個應用程式可以包含多個可執行檔和由許多不同的源檔案建立的動態串連庫,它們有可能在很多其它應用程式中重複使用。當今,管理源檔案間的關係和保護源檔案的內容本身同樣重要。 Microsoft Visual SourceSafe 版本控制軟體通過將專案管理的任務和原始碼的控制結合起來,解決了這個問題。以注重在管理源檔案的同時管理項目,Visual SourceSafe提供了對該問題的優秀的解決方案,是用標準的、面向檔案的來源控制系統不易實現的。 軟體開發流水線 為了理解面向項目的來源控制的優點,僅需將它和面向檔案的系統進行一下比較。一個標準的版本控制系統(例如,UNIX工具RCS)必然是一組用於操作獨立的檔案、控制檔案訪問和更新並與早期版本比較的工具的集合。為了操作一組檔案,你需要編寫一個批檔案或在命令列指定萬用字元。 Microsoft Visual SourceSafe將檔案儲存體在網路的中樞資料庫中,而不是在一個普通的DOS目錄中。在系統級,該資料庫表現為一個“黑盒”。但是,當以Visual SourceSafe為視圖時,可以看到該資料庫中包含了你的組織到項目分層結構中的所有源檔案和記錄。 當你檢索一個檔案時,Visual SourceSafe將在資料庫中標記該檔案為簽出,然後允許你在你的機器上對該檔案進行修改。當你將該檔案放回時,Visual SourceSafe更新它的資料庫並重新修改你的機器對檔案的存取權限為唯讀。 然而,這和面向檔案的來源控制有什麼不同呢? 對於每一個改變,Visual SourceSafe資料庫記錄並追蹤那些對於面向檔案的系統停用項目資訊。每當檔案被加入,修改,共用,移動,或從項目中刪除,Visual SourceSafe將同時更新檔案和項目的記錄。你可以應用項目記錄來簡化這些工作: 在連編前瀏覽指定項目及其全部子項目中所有檔案的狀態。 ? 縮小那些由於在某一日期聯編可能引起錯誤的指定檔案的改變資訊。 重建所有應用程式的前一版本。 維護被許多不同應用程式共用的源檔案。 確定哪一個項目將由於改變被多個不同應用程式共用的檔案而受到影響。 管理跨平台 app程式的特定客戶版本。 對於軟體開發人員來說,試圖通過面向檔案的系統來完成這些工作,將是令人難以忍受的瑣碎且無益的。正如下述的方案所闡述的那樣,Visual SourceSafe面向項目的版本控制通過直接進行這些工作,將開發過程流水線化了。 為連編做準備 假定你將連編一個包含了很多獨立的組件的主應用程式。在你開始連編之前,你希望確認沒有人在最後的時刻修改代碼,並且在版本控制過程中,整個系統沒有檔案被簽出。 一個標準的版本控制系統提供給你一個確定檔案是否簽出的工具。你的工作是對將用來連編的每一個目錄中的每一個檔案運行該工具。儘管引入批次檔和萬用字元將使任務簡單些,但面對一個複雜的系統時,仍然是非常繁瑣的。 正如其它系統一樣,Visual SourceSafe可以確定一個檔案是否被簽出。但它還可以建立一個高層的報告:一個項目中所有簽出檔案的列表。這一特性應用在當前項目中迴圈包含所有子項目時功能尤其強大。Visual SourceSafe檢查每個相關項目中的每一個檔案並產生簽出檔案的列表。你可以立即知道是否可以進行連編(或如果你不能時該找誰)。僅需在專案檔中執行一個命令,Visual SourceSafe就可以自動完成以前冗長的需手工完成的工作。 精確迴歸 包括Visual SourceSafe在內的所有版本控制系統都有檔案歷程記錄報告。檔案歷程記錄報告中列出了從最新的到最舊的每一個檔案版本,包含諸如對檔案進行了什麼操作,誰做的,什麼時候完成的和進行了什麼備忘說明等資訊。 儘管檔案歷程記錄非常有用,但它們也有一些缺陷。例如,假定一個特性在上個星期還可以正常工作,但在這個星期連編你的應用程式時出了問題。顯然,最近有人引入了這個錯誤,但是在哪一個檔案中呢? 在標準的版本控制系統中解決這個問題,你需要為一個象是有錯誤的檔案產生一個記錄報告,看是否它最近被修改過,並瀏覽修改情況。如果你沒有找到錯誤,你就要選取另一個檔案進行檢查,如此類推。你可能用這種方法查遍了系統中的所有檔案但沒有找到關鍵的修改──因為事實上這個修改是增加或刪除檔案,而標準的版本控制系統根本不追蹤這樣的操作! 在Visual SourceSafe中,你通過項目本身產生報告。例如,它可能報告COMMON.BAS剛被修改;在此之前,OPENALL.FRM被修改過;此前,FILESUPP.BAS被增加到項目中;諸如此類。Visual SourceSafe整理這些否則你將手工完成檢索的修改資訊,允許你瀏覽上個星期的全部修改的順序。這將節省你很多的時間並協助你避免陷入困境。 重新建立前一項目版本 通過檢索項目的記錄,Visual SourceSafe允許你快速重新建立整個應用程式的前一版本。這將協助你解決在前一版本中報告的錯誤,並確認它們在當前開發的新版本中已解決。 例如,假定一個使用者報告應用程式版本2.03中有一個列印問題。應用程式的該版本可能包含一個檔案版本為10,另一個檔案版本為15,諸如此類;但你不必擔心這些。從Visual SourceSafe中請求一個指定的項目版本,你便可以還原一個完全的、用於連編2.03版本的應用程式源檔案的本地的副本。 若應用標準的版本控制系統完成這些工作,你或者必須將應用程式的每一個發行版本的來源獨立存檔或者需對每一個版本搜尋指定的檔案。這兩種方法中,為前一次連編恢複正確的源檔案都是一件煩人的手工的過程─ 一項可能被取消或延遲的工作。 維護可重用代碼 大多數應用程式是在一個公用的核心代碼的基礎上開發的。這些檔案在很多不同的應用程式中一次又一次的被使用並隨著時間不斷完善,得到錯誤修複,效能提高,和新的特性。應用現存的代碼的好處是巨大的,但在處理組織問題時仍然是件另人頭疼的事。你必須記住檔案被哪些應用程式使用,並將每一個修改資訊傳送到所有恰當的地方。當有五個應用程式重用一個檔案時,這還只是小麻煩,當有二十個應用程式混合在一起並與五十個不同的重用檔案相配時,麻煩就大了。 一個標準的版本控制系統在這個問題上根本幫不上忙,因為一個源檔案可同時存在於多個不同的項目中。但Visual SourceSafe可以自動完成這一切。在它的資料庫中,Visual SourceSafe對每一個檔案只儲存一次。每個專案檔包含了一個擁有指向資料庫中檔案位置的指標的檔案。對於每一個項目,所有版本的檔案都是可用的;同時一個項目可以“凍結”一個檔案的版本,以避免當其它開發工作群組在可重用代碼上工作時引入錯誤。 舉一個普遍的例子,假定你有一個包含了多個不同列印報告進程的源檔案。在Visual SourceSafe中,每個需要列印報告的應用程式均需要共用該檔案。如果你發現了一個錯誤,你可以從任何一個項目中更新檔案─這一改變資訊將立即傳送到每一個共用該檔案的項目中。Visual SourceSafe可以報告哪些項目共用了該檔案,於是你就知道哪些應用程式受到了影響並需要重新連編。 建立特定使用者版本 另一個普遍的來源控制問題是關於使用者的,他們期望定製應用程式以滿足他們特定的需要。本來,你有很多不同的應用程式,他們共用幾乎全部的相同的源檔案。應用標準來源控制工具,追蹤錯誤並保持連編的連續性的時間將比編程所花費的時間還多。應用Visual SourceSafe,你為每個新使用者建立一個項目,指明哪些檔案是共用的和哪些檔案是獨享的。當你在一個項目中工作時,對於特定使用者的改變資訊將保留在當前的項目中,而對於共用檔案的修改將傳送到所有使用者版本。 |