天天看點

Subversion 伺服器的使用

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

繼續閱讀