Ubuntu 10.10搭建svn服务器


为了避免麻烦,首先获取root权限
sudo -sH

安装Subversion
sudo apt-get install subversion

新建存储仓库
svnadmin create /home/svn

在做文件配置之前,建议先赋予/home/svn文件夹完全读写权限
sudo chmod -R 777 */*

下一步做文件配置,首先是/home/svn/conf
修改:
anon-access = read
auth-access = write
password-db = passwd
anon-access 和 auth-access 分别指定匿名和有权限用户的权限,默认给匿名用户只读的权限,如果想拒绝匿名用户的访问,只需把 read 改成 none 就能达到目的。password-db 后的 passwd 则为定义用户名及密码的文件路径。这个文件默认跟 snvserve.conf 在同一个目录。
记住,去掉上述每一句前面的 # ,并且让其顶格

然后是在pwd文件中添加
svnuser = password
ly = 123456

然后是配置authz,配置信息如下:
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
group_admin = ly

# [/foo/bar]
# harry = rw
# &joe = r
# * =

[/] 
ly = rw
* = 

配置完成以后,就可以导入版本库了
我现在要把/home/paolo/a22source下的内容导入到版本库中:
sudo svn import -m "第一次导入" /home/paolo/a22source file:///home/svn
最后显示:提交后的版本为 1

下面进入搭建SVN服务器:

停止Subversion服务器:
killall svnserve

启动Subversion服务器:
sudo /usr/bin/svnserve -d -r /home/svn/  --listen-host 192.168.6.174
其中-d表示在后台运行,-r指定服务器的根目录,www.bkjia.com这样访问服务器时就可以直接用svn://服务器ip来访问了。如果服务器有多ip的话--listen-host来指定监听的ip地址.  一般情况下没有,则无须指定,即默认为localhost。        
对于多个代码仓库,我们在启动时也可以用-r选项来指定服务器根目录,但访问时需要写上每个仓库相对于svn根目录的相对路径.
比如,我们有两个代码仓库/home/repo1 和/home/repo2,我们用svnserve -d -r /home --listen-host 192.168.1.16来启动,那么在客户端访问时可以用svn://192.168.1.16/repo1和svn: //192.168.1.16/repo2来分别访问两个项目

完成以后,可以用命令或者客户端测试服务器是否搭建成功。我用的是RapidSVN客户端,右键点击书签,“签出新的工作副本”,URI:svn://192.168.6.174,目标目录:/home/paolo/a22svn

友情提醒:
可以用xinetd来启动svnserve的守护进程。
先安装xinetd
sudo apt-get install xinetd

在/etc/xinetd.d/下面新建svn文件

( 由于/etc/xinetd.d/下的目录是只读的,所以需要用命令来完成新建和读写,
   新建文件:
   sudo touch /etc/xinetd.d/svn
   编辑文件:
   sudo gedit /etc/xinetd.d/svn

文件内容如下:
service svn
{
    disable = no
    port = 3690
    socket_type = stream
    protocol = tcp
    wait = no
    user = svn
    server = /usr/bin/svnserve
    server_args = -i -r /home/svn


}

最后,重启xinetd   /etc/init.d/xinetd restart

相关内容