1.检查是否已安装

rpm -qa subversion

如果要卸载旧版本:

yum remove subversion


2.安装

yum install subversion


3.检查是否安装成功

svnserve --version

如果成功会输出版本号


4. 修改环境变量

vi/etc/profile 

 

 

文件末尾加入:

 

PATH=$PATH:/share/apps/svn/bin 

export PATH 

 

使环境变量生效

 

Source/etc/profile



6.创建仓库目录
例如:

mkdir /share/apps/svn/test


7.创建项目

svnadmin create /share/apps/svn/test


8.检查是否创建成功

cd share/apps/svn/test
ll

创建版本库(注意:如果这里不写--pre-1.6-compatible,更新svn的时候会报post commit FS processing had error: Couldn’t open rep-cache database)  PS:这个方法是从别的帖子看来,可以解决问题但并不懂具体原因


8. 配置版本库信息

 

项目配置:

 

vim svnserve.conf 

 

 

修改:去掉注释符

 

anon-access = none  
 
auth-access = write  
 
password-db = passwd  
 
authzauthz-db = authz  
 
realm = test

 

这里要注意:每一行的都要你顶头,不能有空格,不然会报错

 

 

定义版本库访问权限:

 

# vim authz 

 

添加: (svnuser为svn用户名,这里可以用用户组设置权限r:read w:wirte)

 

[/] 

svnuser = rw 

 


设定用户密码:


vim passwd 

 

添加(用户名=密码):

 

svnuser = 123456 

 


8.开放svn端口

默认是3690端口,你也可以用别的。已开启的跳过这一步

修改
iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
保存
/etc/rc.d/init.d/iptables save
重启
service iptables restart
查看
/etc/init.d/iptables status

.

9.启动SVN服务

svnserve -d -r /home/svn

-d:守护进程

-r:svn根目录

假设服务端IP为192.168.1.100,那么如下设置后game的访问目录就为:

svn://192.168.1.100/game



ps:error while loading shared libraries的解決方法


./tests: error while loading shared libraries: xxx.so.0:cannot open shared object file: No such file or directory
出现这类错误表示,系统不知道xxx.so放在哪个目录下,这时候就要在/etc/ld.so.conf中加入xxx.so所在的目录。

一般而言,有很多的so会存放在/usr/local/lib这个目录底下,去这个目录底下找,果然发现自己所需要的.so文件。

所以,在/etc/ld.so.conf中加入/usr/local/lib这一行,保存之后,再运行:/sbin/ldconfig –v更新一下配置即可。



设置SVN服务器强制填写10个字符以上的日志


Linux SVN Server 
SVN Server在每个仓库中的hooks里都有个pre-commit.tmpl文件,cp这个文件并改名为pre-commit并添加可执行权限:chmod +x pre-commit。pre-commit文件内容如下:

REPOS=”$1″ 

TXN=”$2″# Make sure that the log message contains some text. 

SVNLOOK=/usr/bin/svnlook 

LOGMSG=`$SVNLOOK log -t “$TXN” “$REPOS” | grep “[a-zA-Z0-9]” | wc -c`if [ "$LOGMSG" -lt 10 ]; then 

echo -e “Please provide a meaningful comment when committing changes.” 1>&2 

exit 1 

fi# All checks passed, so allow the commit. 

exit 0


配置使用HTTP的方式访问SVN

1.yum install httpd
2.yum install  yum mod_dav_svn

1. 
vim /etc/httpd/conf.d/subversion.conf 
2. 
LoadModule dav_svn_module modules/mod_dav_svn.so
3. 
LoadModule authz_svn_module modules/mod_authz_svn.so
4. 
<Location />
5. 
DAV svn
6. 
SVNParentPath /svn #根目录 
7. 
AuthType Basic
8. 
AuthName "Authorization test" 
9. 
AuthzSVNAccessFile share/apps/svn/authz #验证的权限文件目录
10. 
AuthUserFile share/apps/svn/passwd #密码文件,这个使用htpasswd方式新建的密文文件
11. 
Require valid-user
12. 
</Location>



PS:解决You don't have permission to access /svn/ on this server


    查看权限配置文件的格式是否正确



在本地服务器上安装svn客户端TortoiseSVN  上传几个测试版本


svn迁移步骤如下:

1.将原来的Repository导出为一个文件

svnadmin dump /svnroot/repos > repos

这里说明下/svnroot/repos是我svn库存放的地址.

2.使用scp把repos传输到要新服务器上

scp repos root@ip:路径

3.在新服务器上配置相同svn环境,如

svnadmin create /svnroot/repos

4.将repos导入新库中

svnadmin load /svnroot/repos < /root/repos

5.将原服务器的配置文件复制到新服务器,如authz,passwd,svnserve.conf

6.启动新svn

svnserve -d --listen-port 3690 /svnroot/repos