如何進行SVN版本控制?
本節(jié)和大家一起學習一下如何使用SVN版本控制,其中操作環(huán)境是WINDOWSXP+JAVA1.6+Eclipse3.4M5,本節(jié)主要描述一下SVN簡介,歡迎大家一起來學習使用SVN進行版本控制的方法。
使用SVN版本控制
1.關于SVN的簡介
SVN全名Subversion,即版本控制系統(tǒng)。SVN與CVS一樣,是一個跨平臺的軟件,支持大多數(shù)常見的操作系統(tǒng)。作為一個開源的版本控制系統(tǒng),Subversion管理著隨時間改變的數(shù)據(jù)。這些數(shù)據(jù)放置在一個中央資料檔案庫(repository)中。這個檔案庫很像一個普通的文件服務器,不過它會記住每一次文件的變動。這樣你就可以把檔案恢復到舊的版本,或是瀏覽文件的變動歷史。Subversion是一個通用的系統(tǒng),可用來管理任何類型的文件,其中包括了程序源碼。
SubVersion:實現(xiàn)服務系統(tǒng)的軟件。
TortoiseSVN:是SVN客戶端程序,為windows外殼程序集成到windows資源管理器和
文件管理系統(tǒng)的Subversion客戶端。
SVNService.exe:是專為SubVersion開發(fā)的一個用來作為Win32服務掛接的入口程序。
AnkhSVN:是一個專為VisualStudio提供SVN的插件。
Subversion提供以下主要功能:
目錄SVN版本控制
CVS只能跟蹤單個文件的歷史,不過Subversion實作了一個“虛擬”的版本控管文件系統(tǒng),能夠依時間跟蹤整個目錄的變動。目錄和文件都能進行版本控制。
真實的版本歷史
自從CVS限制了文件的版本記錄,CVS并不支持那些可能發(fā)生在文件上,但會影響所在目錄內容的操作,如同復制和重命名。除此之外,在CVS里你不能用擁有同樣名字但是沒有繼承老版本歷史或者根本沒有關系的文件替換一個已經(jīng)納入系統(tǒng)的文件。在Subversion中,你可以增加(add)、刪除(delete)、復制(copy)和重命名(rename),無論是文件還是目錄。所有的新加的文件都從一個新的、干凈的版本開始。
自動提交
一個提交動作,不是全部更新到了檔案庫中,就是完全不更新。這允許開發(fā)人員以邏輯區(qū)間建立并提交變動,以防止當部分提交成功時出現(xiàn)的問題。
納入SVN版本控制的元數(shù)據(jù)
每一個文件與目錄都附有一組屬性關鍵字并和屬性值相關聯(lián)。你可以創(chuàng)建,并儲存任何你想要的Key/Value對。屬性是隨著時間來作版本控管的,就像文件內容一樣。
選擇不同的網(wǎng)絡層
Subversion有抽象的檔案庫存取概念,可以讓人很容易地實作新的網(wǎng)絡機制。Subversion可以作為一個擴展模塊嵌入到ApacheHTTP服務器中。這個為Subversion提供了非常先進的穩(wěn)定性和協(xié)同工作能力,除此之外還提供了許多重要功能:舉例來說,有身份認證,授權,在線壓縮,以及文件庫瀏覽等等。還有一個輕量級的獨立Subversion服務器,使用的是自定義的通信協(xié)議,可以很容易地通過ssh以tunnel方式使用。
一致的數(shù)據(jù)處理方式
Subversion使用二進制差異算法來異表示文件的差異,它對文字(人類可理解的)與二進制文件(人類無法理解的)兩類的文件都一視同仁。這兩類的文件都同樣地以壓縮形式儲存在檔案庫中,而且文件差異是以兩個方向在網(wǎng)絡上傳輸?shù)摹?/p>
有效的分支(branch)與標簽(tag)
在分支與標簽上的消耗并不必一定要與項目大小成正比。Subversion建立分支與標簽的方法,就只是復制該項目,使用的方法就類似于硬連接(hard-link)。所以這些操作只會花費很小,而且是固定的時間。
Hackability
Subversion沒有任何的歷史包袱;它主要是一群共用的C程序庫,具有定義完善的API。這使得Subversion便于維護,并且可被其它應用程序與程序語言使用。請期待下節(jié)關于使用SVN版本控制
介紹。
【編輯推薦】