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