1. 首先建立SVN儲存庫(repository)
svnadmin create /home/svnroot/repository
repository建立完畢後會在目錄下生成若幹個檔案和檔案夾,dav目錄是提供給Apache與mod_dav_svn使用的目錄,讓它們存儲内部 資料;db目錄就是所有版本控制的資料檔案;hooks目錄放置hook腳本檔案的目錄;locks用來放置Subversion檔案庫鎖定資料的目錄, 用來追蹤存取檔案庫的用戶端;format檔案是一個文本檔案,裡面隻放了一個整數,表示目前檔案庫配置的版本号;
2. 配置SVN伺服器
打開/conf/目錄,打開svnserve.conf找到一下兩句:
# [general]
# password-db = passwd
去之每行開頭的#,其中第二行是指定身份驗證的檔案名,即passwd檔案
同樣打開passwd檔案,将
# [users]
# harry = harryssecret
# sally = sallyssecret
這幾行的開頭#字元去掉,這是設定使用者,一行一個,存儲格式為“使用者名 = 密碼”,如可插入一行:admin = admin888,即為系統添加一個使用者名為admin,密碼為admin888的使用者
3. 運作SVN伺服器
運作SVN服務
在指令行執行
svnserve --daemon --root /home/svnroot/repository
服務啟動,--daemon可簡寫為-d,--root可簡寫為-r,可以建立一個批處理檔案并放在windows啟動組中便于開機就運作SVN服務。
對于單個代碼倉庫
啟動指令 svnserve -d -r /home/svnroot/repository/test1 --listen-host 192.168.1.18
其中-d表示在背景運作,-r指定伺服器的根目錄,這樣通路伺服器時就可以直接用svn://伺服器ip來通路了。如果伺服器有多ip的話--listen-host來指定監聽的ip位址。
我們可以在svn用戶端中通過svn://192.168.1.18來通路svn伺服器。
對于多個代碼倉庫
我們在啟動時也可以用-r選項來指定伺服器根目錄,但通路時需要寫上每個倉庫相對于svn根目錄的相對路徑。
比如,我們有兩個代碼倉庫/home/svnroot/repository/test1 和/home/svnroot/repository/test2,我們用svnserve -d -r /home/svnroot/repository --listen-host 192.168.1.18來啟動,那麼在用戶端通路時可以用svn://192.168.1.18/test1和svn://192.168.1.200/test2來分别通路兩個項目
啟動完成以後,我們可以用ps aux|grep svnserv來檢視是否存在svnserve程序。
開放伺服器端口
SVN預設端口是3690,你需要在防火牆上開放這個端口。
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT
/sbin/service iptables save
你也可以通過svnserve的--listen-port選項來指定一個已經開放的其他端口,不過這樣的話用戶端使用也必須加上端口,如svn://192.168.1.18:9999/。
參考:
【1】http://www.cppblog.com/niewenlong/archive/2007/10/12/34024.html