Subversion的設(shè)計(jì)包括一個(gè)抽象的網(wǎng)絡(luò)層,這意味著版本庫(kù)可以通過(guò)各種服務(wù)器進(jìn)程訪問(wèn)。理論上講,Subversion可以使用無(wú)限數(shù)量的網(wǎng)絡(luò)協(xié)議實(shí)現(xiàn),目前實(shí)踐中存在著兩種服務(wù)器。
• SVNServer:svnserve 是一個(gè)小的(也叫輕型的)、獨(dú)立服務(wù)器,使用自己定義的協(xié)議和客戶端。(作者注:以下稱(chēng)這種服務(wù)器為“svnserver服務(wù)器”。)
• ApacheSVN:Apache是最流行的web服務(wù)器,通過(guò)使用 mod_dav_svn 模塊,Apache可以訪問(wèn)版本庫(kù),并且可以使客戶端使用HTTP的擴(kuò)展協(xié)議WebDAV/DeltaV進(jìn)行訪問(wèn)。(作者注:以下稱(chēng)這種服務(wù)器為“ApacheSVN服務(wù)器”。)
下面介紹 SVNServer 服務(wù)器的安裝,ApacheSVN 服務(wù)器的安裝使用請(qǐng)看我寫(xiě)的《Subversion高級(jí)應(yīng)用:SVN的多種認(rèn)證方式》。
環(huán)境
OS:Windows XP SP2
Web:Apache 2.2.6
SVN:svn-win32-1.4.6
1、準(zhǔn)備工作。
(1)獲取 Subversion 服務(wù)器程序。
到官方網(wǎng)站(http://subversion.tigris.org/)下載最新的服務(wù)器安裝程序。目前最新的是1.4.6版本,具體下載地址在:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91 ,注意找 for apache 2.2.x 版本的。
(2)獲取 TortoiseSVN 客戶端程序。
從官方網(wǎng)站 http://tortoisesvn.net/downloads 獲取最新的 TortoiseSVN 。TortoiseSVN 是一個(gè)客戶端程序,用來(lái)與 subvers 服務(wù)器端通訊。Subversion 自帶一個(gè)客戶端程序 svn.exe ,但 TortoiseSVN 更好操作,提高效率。
2、安裝服務(wù)器端和客戶端
首先安裝 Apache 2.2.6 ,具體安裝方法大家參考相關(guān)資料,或者參看我寫(xiě)的《Windows下安裝Apache 2.2.x》。
其次安裝 Subversion(以下簡(jiǎn)稱(chēng)SVN)的服務(wù)器端和客戶端。下載下來(lái)的服務(wù)器端是個(gè) zip 壓縮包,直接解壓縮即可,比如我解壓到 E:\subversion 。客戶端安裝文件是個(gè) exe 可執(zhí)行文件,直接運(yùn)行按提示安裝即可,客戶端安裝完成后提示重啟。
3、建立版本庫(kù)(Repository)
運(yùn)行Subversion服務(wù)器需要首先要建立一個(gè)版本庫(kù)(Repository)。版本庫(kù)可以看作是服務(wù)器上集中存放和管理數(shù)據(jù)的地方。
開(kāi)始建立版本庫(kù)。首先建立 e:\svn 空文件夾作為所有版本庫(kù)的根目錄。然后,進(jìn)入命令行并切換到subversion的bin目錄。輸入如下命令:
svnadmin create E:\svn\repos1
此命令在 E:\svn 下建立一個(gè)版本庫(kù) repos1 。repos1 下面會(huì)自動(dòng)生成一些文件夾和文件。
我們也可以使用 TortoiseSVN 圖形化的完成這一步:
先建立空目錄 E:\svn\repos1 ,注意一定是要空的。然后在 repos1 文件夾上“右鍵->TortoiseSVN->Create Repository here...”,然后可以選擇版本庫(kù)模式,這里使用默認(rèn)的FSFS即可,然后就創(chuàng)建了一系列文件夾和文件,同命令行建立的一樣。
4、運(yùn)行獨(dú)立服務(wù)器
此時(shí) subversion 服務(wù)還沒(méi)有開(kāi)始,只是通過(guò)它的命令建立了版本庫(kù)。繼續(xù)在剛才的命令窗口輸入:
svnserve.exe –daemon
svnserve 將會(huì)在端口 3690 等待請(qǐng)求,--daemon(兩個(gè)短橫線)選項(xiàng)告訴 svnserve 以守護(hù)進(jìn)程方式運(yùn)行,這樣在手動(dòng)終止之前不會(huì)退出。注意不要關(guān)閉命令行窗口,關(guān)閉窗口會(huì)把 svnserve 停止。
為了驗(yàn)證svnserve正常工作,使用TortoiseSVN -> Repo-browser 來(lái)查看版本庫(kù)。在彈出的 URL 對(duì)話框中輸入:
svn://localhost/svn/repos1
點(diǎn) OK 按鈕后就可以看見(jiàn) repos1 版本庫(kù)的目錄樹(shù)結(jié)構(gòu)了,只不過(guò)這時(shí) repos1 是個(gè)空庫(kù)。
你也可以使用--root選項(xiàng)設(shè)置根位置來(lái)限制服務(wù)器的訪問(wèn)目錄,從而增加安全性和節(jié)約輸入svnserve URL的時(shí)間:
svnserve.exe --daemon --root drive:\path\to\repository
以前面的測(cè)試作為例,svnserve 將會(huì)運(yùn)行為:
svnserve.exe --daemon --root e:\svn
然后TortoiseSVN中的版本庫(kù)瀏覽器URL縮減為:
svn://localhost/repos1