用VisualSourceSafe開發專案程式碼(轉)

post0發表於2007-08-12
用VisualSourceSafe開發專案程式碼(轉)[@more@]

  引言:

  

  在軟體開發專案中,對所有程式碼文件進行許可權、版本等的管理是必須的。我的所有文件和程式碼也是使用Visual SourceSafe來管理的,Visual SourceSafe是個不錯的工具,雖然在使用上也覺得有些不便,但其能與Visual Studio中的各種開發工具很好的整合,為我們的開發和管理確實提供了不少的方便。

  

  摘要

  

  專業的軟體開發需要對在開發過程中每一應用程式的原始碼修改的管理進行流水線處理。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將同時更新檔案和專案的歷史記錄。你可以應用專案歷史記錄來簡化這些工作:

  

  在連編前瀏覽指定專案及其全部子專案中所有檔案的狀態。 ? 縮小那些由於在某一日期聯編可能引起錯誤的指定檔案的改變資訊。

  

  重新生成所有應用程式的前一版本。

  

  維護被許多不同應用程式共享的原始檔。

  

  確定哪一個專案將由於改變被多個不同應用程式共享的檔案而受到影響。

  

  管理通用應用程式的特定客戶版本。

  

  對於軟體開發人員來說,試圖透過面向檔案的系統來完成這些工作,將是令人難以忍受的瑣碎且無益的。正如下述的方案所闡述的那樣,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,你為每個新使用者建立一個專案,指明哪些檔案是共享的和哪些檔案是獨享的。當你在一個專案中工作時,對於特定使用者的改變資訊將保留在當前的專案中,而對於共享檔案的修改將傳送到所有使用者版本

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-951465/,如需轉載,請註明出處,否則將追究法律責任。

相關文章