Subversion安装手记

为把业余生活搞得专业一点,遂把家里那台PS3用作了svn服务器,折腾了半天,原来很简单的东西被网上文章误导了很长时间,现留笔存证。

Fedora Core 6安装好服务器组件,应该就有SVN了,如果不确定:
$ rpm -q subversion

这时你最好先增加一个svn专用的用户:
$ useradd svnroot
$ passwd svnroot

然后切换到svnroot用户,在用户目录下
$ svnadmin create ./repo

切换为root,将目录的访问权限给改了
$ chown –R svnroot:daemon /your/repo/path

这会建立一个数据库,多了不少文件,ls以确认:
$ ls repo
conf/  dav/  db/  format  hooks/  locks/  README.txt

我们不用apache,所以对于conf/svnserve.conf文件,需要进一步的配置,主要需要把权限和权限文件设置一把。这个可以参考手册这里就不详述了。

然后要编写authz权限文件和passwd密码文件,也是参考手册的做法即可。千万不要信一些网上文档,只会让你越搞越复杂。

当然你的服务默认是不会开启的。官方文档说可以用inetd的方式开启,但我没成功,于是用地球人都用的daemon方式启动

svnserve -d -r /home/svnroot/repo

要确认是否成功了,你可以在你的client端telnet yourserverip 3690,如果出现
( success ( 1 2 ( ANONYMOUS ) ( edit-pipeline ) ) )

就说明成功启动了svn服务。

这时候你可以装windows的tortoiseSVN客户端了,装完了重启,然后在浏览器里直接打svn://yourserverip,输入用户名和密码,应该能看到你的svn目录结构了。把你的东西先import进去,然后checkout出来,事成矣。

如果想每次启动时自动启动svn服务,那么编辑/etc/init.d/svn

#!/bin/sh
# subversion initialization routine

svnserve -d -r /your/repo/path

然后
$ chmod 755 /etc/init.d/svn
$ ln -s /etc/init.d/svn /etc/rc.3/S60svn
$ ln -s /etc/init.d/svn /etc/rc.5/S60svn

最后重启即可。