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