VSS注意事項

2022-02-08 01:07:10 字數 3847 閱讀 9834

一、版本管理的必要性

如果說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格式。

java DOM 注意事項

1.w3c把標籤內的文字部分也定義成乙個node 2.element物件代表的是xml文件中的標籤元素 繼承於node,亦是node的最主要的子物件 3.attr實際上是包含在element中的,它並不能被看作是element的子物件,因而在dom中attr並不是dom樹的一部分,所以node中的 ...

static注意事項

static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...

CSS注意事項

一 寬度 高度 對齊方式請別忘記他們 只要你時刻記得 div css 不變形的秘密你已經掌握了 90 也有對齊方式哦!一定要掌握當 對齊方式不同是 布局出現的問題!左右左 能不變形嗎?預設 是要換行的哦 div css的 居中對齊 是有條件的哦 所有當同級元素的對齊方式都為居中對齊的時候可以採用居中...