在日常的軟件開發中,有的時候需要自己搭建微型svn服務器用於代碼管理,下面是微型svn服務器的搭建方法:
1、創建svn根目錄:
[root@localhost myfec-bic-svn]# mkdir wmp
[root@localhost myfec-bic-svn]# ls
wmp
[root@localhost myfec-bic-svn]#
2、創建svn版本庫
[root@localhost myfec-bic-svn]# svnadmincreate wmp
[root@localhost myfec-bic-svn]# cd wmp/ && ls
conf db format hooks locks README.txt
[root@localhost wmp]#
創建svn版本庫主要爲了生成svn的配置和管理文件,conf文件夾是svn的配置文件,下面我們需要修改這個目錄下的文件來完成svn微型服務器的搭建。
3、配置文件
1)添加用戶
[root@localhost wmp]# cd conf/
[root@localhost conf]# ls
authz passwd svnserve.conf
在passwd文件的users下添加用戶 test,具體做法如下:
passwd文件修改前:
[root@localhost conf]# cat passwd
### This file is an example password filefor svnserve.
### Its format is similar to that ofsvnserve.conf. As shown in the
### example below it contains one sectionlabelled [users].
### The name and password for each userfollow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
[root@localhost conf]#
passwd文件修改後:
[root@localhost conf]# cat passwd
### This file is an example password filefor svnserve.
### Its format is similar to that ofsvnserve.conf. As shown in the
### example below it contains one sectionlabelled [users].
### The name and password for each userfollow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
test = a123456
[root@localhost conf]#
賬戶是test,密碼是a123456,後面可以使用這個賬戶download代碼和代碼提交等。
2)爲用戶配置權限
[root@localhost conf]# vim authz
在authz文件末尾加兩行:
[/]
test = rw
3)修改svnserve.conf文件(配置svn服務器的域)
修改svnserve.conf文件 realm字段爲你的svn版本庫路徑。
auth-access = write
password-db = passwd
authz-db = authz
realm = /home/test/myfec-bic-svn/wmp/
如果這個字段沒有修改會提示:svn: No repository found in.
4、啓動svn版本庫
svnserve -d -r /home/test/myfec-bic-svn/wmp/(svn對應的根目錄)
5、驗證是否構建成功
svn co svn://192.168.127.138/ (輸入前面配置的用戶名和密碼)
如果不出意外微型的svn服務器就應經搭建成功了。
6、可能碰到的問題
1)如果在代碼提交後無法顯示svn代碼提交日誌,那麼很有很可能是svn服務器沒有打開log功能,解決方法是:
修改svnserve.conf文件: anon-access = none(否則查看不到提交日誌)。
2)如果提交沒有權限:
[qiuyubing@localhost udpfec]$ svn ci
Sending udpfec/ctcp_impl.h
Sending udpfec/ctcp_utils.c
Sending udpfec/ep_pt.c
Transmitting file data ...svn: Commitfailed (details follow):
svn: Can't open file'/home/qiuyubing/myfec-bic-svn/wmp/db/txn-current-lock': Permission denied
svn: Your commit message was left in atemporary file:
svn: '/home/test/1/3/192.168.35.23/svn-commit.3.tmp'
解決方案:
[root@localhost wmp]# chown -R qiuyb db/
[root@localhost wmp]# chmod 777 -R db/
3) 如果要添加別的svn項目管理:
svnadmin create tcpoverudp
4 )限定不同用戶對不同svn項目的訪問權限:
[/tcpoverudp]
testb1 = rw
testb2 = rw
上面兩個用戶僅能對svn服務器上的test項目訪問。
[/]
testd1 = rw
testd2 = rw
上面兩個用戶僅能對svn服務器上的所有項目都可以訪問。
提示:在修改上面這些配置文件時,所有內容都需要頂格,否則修改無效。