Subversion 就是一個自由/開源版本控制的軟件,它記錄你每次對數(shù)據倉庫的修改,并能使你找回某一個時刻修改的版本文件。它的核心就是數(shù)據倉庫,你需要把你的文件提交到數(shù)據倉庫,并更新數(shù)據倉庫的文件,及根據需要能通過版本找到當時的數(shù)據。所以Subversion 只需要在服務端進行安裝即可。
Subversion軟件簡介
Subversion(簡稱SVN)是近年來崛起的版本管理軟件系統(tǒng),是CVS的接班人。目前,絕大多數(shù)開源軟件都使用SVN作為代碼版管理軟件。
Subversion是版本控制系統(tǒng),與RCS、CVS相比,采用分支管理系統(tǒng),其設計目標是取代CVS。網上免費版本控制服務多以Subversion為基礎。
Subversion的版本庫可以通過網絡訪問,用戶可以在不同的計算機上操作。在某種程度上,允許用戶在各自的空間內修改和管理同一組數(shù)據可以促進團隊合作。因為修改不再是單線(單線的進行,也就是說必須一個一個地進行),開發(fā)進展迅速。另外,因為所有的工作都版本化了,所以沒有必要擔心變更錯誤會影響軟件的質量。如果發(fā)生不正確的變更,只要取消那個變更操作即可。一些版本控制系統(tǒng)本身也是軟件配置管理系統(tǒng)(SCM),該系統(tǒng)經過精巧的設計,專門管理源代碼樹,具有與軟件開發(fā)相關的特性,如支持編程語言或提供程序構建工具。但是,Subversion不是這樣的系統(tǒng),而是通用系統(tǒng),可以管理任何類型的文件集。
Subversion功能介紹
1、包含絕大部分CVS的功能
CVS是最基本的版本控制系統(tǒng)。包含了CVS的大部分功能,并且針對有些功能還稍加改進。
2、目錄的版本化
將目錄名以版本號的形式體現(xiàn)。
3、基于版本的復制,刪除和重命名
無論復制、刪除還是重命名,都會被打上版本號,盡管這聽上去有些奇怪。
4、自由的版本化元數(shù)據操作
允許任何元數(shù)據附加在文件或目錄中。這些屬性是鍵/值對,并且被版本化。也提供對修訂版附加任何鍵/值屬性的方法,這些屬性不會被版本化,因為他們會自動將元數(shù)據附加到版本空間中,但他們可以隨時被更改。
5、混合追蹤
開始加入了混合追蹤功能。
6、文件鎖
支持文件鎖定,當多個用戶試圖編輯同一個文件時會收到警告。
7、Apache網絡服務的支持,基于WebDAV/DeltaV協(xié)議
使用基于HTTP的WebDAV/DeltaV協(xié)議進行網絡通信,而Apache網絡服務器提供網絡存儲的站點服務。
8、可執(zhí)行的標簽
當一個文件是可執(zhí)行的時候,會提示,并且當這個可執(zhí)行的文件被放在版本控制中時,會防止該程序檢查其他目錄。
9、獨立進程模式
可以運行在獨立模式下。
10、一個只讀的存儲鏡像
提供一個工具,SVNsync, 用于同步主服務器上的 文件到一個子存儲服務器上,并且標為只讀的屬性。
Subversion快速入門教程
如何快速建立Subversion服務器,并且在項目中使用起來,這是大家最關心的問題,與CVS相比,Subversion有更多的選擇,也更加的容易,幾個命令就可以建立一套服務器環(huán)境,可以使用起來,這里配套有動畫教程。
本文是使用Subversion最快速的教程,在最短的時間里幫助您建立起一套可用的服務器環(huán)境,只需略加調整就可以應用到實際項目當中。
本教程分為以下幾個部門,不僅僅是快速入門,最后我們還有一些高級功能的說明,為了說明簡單,教程是在windows下使用的方式,以方便資源有限的項目使用,對于UNIX環(huán)境下,區(qū)別并不大。
軟件下載
服務器和客戶端安裝
建立版本庫(Repository)
配置用戶和權限
運行獨立服務器
初始化導入
基本客戶端操作
1,軟件下載
下載Subversion服務器程序。
到官方網站的下載二進制安裝文件,來到二進制包下載部分,找到 Windows NT, 2000, XP and 2003部分,然后選擇" this directory ",這樣我們可以看到許多下載的內容,目前可以下載 svn-1.4.0-setup.exe 。
下載Subversion的Windows客戶端TortoiseSVN。
TortoiseSVN是擴展Windows Shell的一套工具,可以看作Windows資源管理器的插件,安裝之后Windows就可以識別Subversion的工作目錄。
官方網站是TortoiseSVN ,下載方式和前面的svn服務器類似,在Download頁面的我們可以選擇下載的版本,目前的最高穩(wěn)定版本的安裝文件為TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi。
2,服務器和客戶端安裝
服務器安裝,直接運行svn-1.4.0-setup.exe ,根據提示安裝即可,這樣我們就有了一套服務器可以運行的環(huán)境。
安裝TortoiseSVN,同樣直接運行TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi按照提示安裝即可,不過最后完成后會提示是否重啟,其實重啟只是使svn工作拷貝在windows中的特殊樣式生效,與所有的實際功能無關,這里為了立刻看到好的效果,還是重新啟動機器。
3,建立版本庫(Repository)
運行Subversion服務器需要首先要建立一個版本庫(Repository),可以看作服務器上存放數(shù)據的數(shù)據庫,在安裝了Subversion服務器之后,可以直接運行,如:
svnadmin create E:\svndemo\repository
就會在目錄E:\svndemo\repository下創(chuàng)建一個版本庫。
我們也可以使用TortoiseSVN圖形化的完成這一步:
在目錄E:\svndemo\repository下"右鍵->TortoiseSVN->Create Repository here...“, 然后可以選擇版本庫模式, 這里使用默認即可, 然后就創(chuàng)建了一系列目錄和文件。
4,配置用戶和權限
來到E:\svndemo\repository\conf目錄,修改svnserve.conf:
# [general]
# password-db = passwd
改為:
[general]
password-db = passwd 然后修改同目錄的passwd文件,去掉下面三行的注釋:
# [users]
# harry = harryssecret
# sally = sallyssecret
最后變成:
[users]
harry = harryssecret
sally = sallyssecret
5,運行獨立服務器
在任意目錄下運行:
svnserve -d -r E:\svndemo\repository 我們的服務器程序就已經啟動了。注意不要關閉命令行窗口,關閉窗口也會把svnserve停止。
6,初始化導入
來到我們想要導入的項目根目錄,在這個例子里是E:\svndemo\initproject,目錄下有一個readme.txt文件:
右鍵->TortoiseSVN->Import...
URL of repository輸入“svn://localhost/”
ok
完成之后目錄沒有任何變化,如果沒有報錯,數(shù)據就已經全部導入到了我們剛才定義的版本庫中。
需要注意的是,這一步操作可以完全在另一臺安裝了TortoiseSVN的主機上進行。例如運行svnserve的主機的IP是133.96.121.22,則URL部分輸入的內容就是“svn://133.96.121.22/”。
7,基本客戶端操作
取出版本庫到一個工作拷貝:
來到任意空目錄下,在本例中是E:\svndemo\wc1,運行右鍵->Checkout,在URL of repository中輸入svn://localhost/,這樣我們就得到了一份工作拷貝。
在工作拷貝中作出修改并提交:
打開readme.txt,作出修改,然后右鍵->Commit...,這樣我們就把修改提交到了版本庫,我們可以運行。
察看所作的修改:
readme.txt上右鍵->TortoiseSVN->Show Log,這樣我們就可以看到我們對這個文件所有的提交。在版本1上右鍵->Compare with working copy,我們可以比較工作拷貝的文件和版本1的區(qū)別。