常用的版本控制軟體的介紹(vss,cvs,svn)

來源:互聯網
上載者:User
另:歡迎各位加群:206981178,共同學習交流
1.vss

VSS6.0現在是作為Microsoft Visual Studio6.0這個開發產品家族的一員,如Visual C++6.0和Visual J++6.0一樣。

1. VSS的簡單工作原理

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

VSS的項目組織管理使得開發小組的協調變得簡單容易且很直觀,當一個和一組檔案發放給另一個成員,小組,W eb網站或是任何其他的地址,VSS確保他們之間的真正共用及所選的一組檔案的不同版本的安全性。現在,越來越多的開發人員可以通過他們的開發環境來訪問VSS的功能。而且VSS可以很容易地於Microsoft Access、 Vi sual 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. VSS6.0的一些新增的特徵和功能

歸檔和恢複-在VSS6.0中這兩個操作是在一個使用者介面友好的VSS管理員wizard中進行的,而在以前的版本中,它們只能通過命令列來實現。

移動檔案-當使用者移動檔案時,VSS6.0自動將該檔案分享權限設定到一個新的項目中,並在原項目中將其刪除。在新項目中,該檔案的屬性是共用的。

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

單個檔案的展開-在以前的版本中,VSS只能展開一個目錄(檔案夾),在VSS6.0中,同時可以展開一個檔案。

快速提取-由於VSS6.0在效能上的提高,現在的檔案提取速度比以往VSS版本的快兩倍左右。

曆史資訊過濾-VSS6.0支援查看那些沒有標籤的檔案和項目的曆史。

清除臨時檔案夾選項-該新功能可使使用者很方便地清除臨時檔案夾。

檢查外部的超串連-在VSS的較早的版本中,只有內部的超串連和項目內的跳轉才得到檢查,VSS6.0允許使用者檢查項目之外的超串連和跳轉。

建立開啟VSS資料庫的快速鍵-使用者可以使用VSS Explorer中該新功能建立一個開啟某個特定VSS 資料庫的案頭快速鍵。

HTML格式的協助-VSS的以往版本使用的是WinHelp格式。



2.cvs

本文是結合CVS的應用經驗,發揮自己的想象力,設計的CVS實現原理。至於真正的CVS是否是這個原理,沒有做相關調查。本文設計的CVS實現原理能夠解釋我所遇到的所有CVS操作,因此該原理有助於學習CVS。       CVS有伺服器和本地沙箱構成。在伺服器端對每個檔案維護著一個修訂編號(Revision,簡記為SR),每次對檔案的更新,都會使得檔案的修訂編號加1。在沙箱中也對每個檔案維護著一個修訂編號(簡記為CR),CVS正是通過這兩個修訂編號的關係,來進行Update,Commit和發現衝突等操作操作的。下面,看一下各個操作與修訂編號的關係:     1)commit操作。commit操作把本地對檔案的修改提交到伺服器端。當執行commit操作時,依次做兩件事:a)判斷CR是否等於SR,如果CR      2)update操作。update操作把其他使用者對檔案的修改更新到本地。當執行update操作時,依次做兩件事:a)判斷CR是否等於SR,如果CR      3)updatespecial操作。功能比update更強大,參數更多。如果使用者想放棄本地修改,而與伺服器端同步處理,可以使用該操作。並選中“cleancopy”複選框(註:只對於tortoiseCVS使用者)。此外,還可以選擇具體同步到伺服器的那個版本。      4)checkout操作。從伺服器端獲得副本,並初始化CR,使之等於SR。         使用CVS有2個操作順序,一是先commit,如果衝突再執行update,否則不執行update,將此操作順序稱為commit優先法。二是先update,修改檔案後,再執行commit,如果衝突,需要再執行update,將此操作順序稱為update優先法。 update優先法更好一些,因為可以更早的發現衝突,並採取措施,推薦用這個方法使用CVS。       用update優先法使用CVS示範如下圖。注意:圖中N表示修訂編號;紅色部分是為了示範Update衝突類型,假設使用者執行的操作,正常情況下,沒有這一步。

原理圖:



3.svn

Subversion支援linux和windows,但較多安裝在linux下

svn伺服器有兩種運行方式:獨立伺服器和藉助於apache。svn://   http://

svn用戶端tortoisesvn

svn的基本工作思路: 在一台伺服器上建立一個原始碼庫,庫裡可以存放許多不同項目的來源程式。有原始碼庫管理員

                   統一管理這些來源程式。每個使用者在使用原始碼庫之前,首先要把原始碼庫裡德專案檔下載到

                   本地,然後開發人員可以在本地修改,左後用svn命令進行提交,遊原始碼庫統一管理修改。

版本控制解決了:

              *代碼管理混亂

              *解決代碼衝突困難

              *在代碼整合期間引發bug

              *無法對代碼的擁有者進行許可權控制

               *項目不同版本的發布困難 SVN工作原理示意圖



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.