您的位置:首页 > 运维架构 > Linux

CentOS 5.2下SVN服务器的安装与配置【转】

2012-10-15 21:51 537 查看
安装了一下SVN服务器,本文没有与Apache整合,过程如下:

一,下载相关软件:

[root@youxia201 test]# wget http://subversion.tigris.org/downloads/subversion-1.6.1.tar.gz

[root@youxia201 test]# wget http://subversion.tigris.org/downloads/subversion-deps-1.6.1.tar.gz

二,安装及配置:

1,解压,要在同一个目录下:

[root@youxia201 opt]# tar -zxvf subversion-1.6.1.tar.gz

[root@youxia201 opt]# tar -zxvf subversion-deps-1.6.1.tar.gz

2,编译及安装:

[root@youxia201 subversion-1.6.1]# ./configure --prefix=/usr/local/svn/

[root@youxia201 subversion-1.6.1]# make && make install

3,把svn相关的命令添加到环境变量中:

[root@youxia201 subversion-1.6.1]# echo "export PATH=$PATH:/usr/local/svn/bin/" >> /etc/profile

[root@youxia201 subversion-1.6.1]# source /etc/profile

三,建立测试仓库:

1,建立SVN的根目录,研发中心有多个项目部:

[root@youxia201 subversion-1.6.1]# mkdir -p /opt/svn/

2,建立一个测试仓库:

[root@youxia201 subversion-1.6.1]# mkdir -p /opt/svn/svntest/

[root@youxia201 subversion-1.6.1]# svnadmin create /opt/svn/svntest/

3,修改配置文件:

[root@youxia201 svntest]# cd /opt/svn/svntest/conf/

[root@youxia201 conf]# vi svnserve.conf

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

[root@youxia201 conf]# vi authz

[svntest:/]

lipeng = rw

#给svntest仓库添加一个名称为李鹏的用户,权限为可写。

[root@youxia201 conf]# vi passwd

lipeng = 123456

#由于是测试,密码设置为123456

四,在Windows XP上安装svn客户端:

1,下载地址:

http://code.google.com/p/rails4scm/downloads/detail?name=tortoisewin32svn.msi

2,下载完成后,直接next安装即可,安装完成后需要重启生效。

五,启服务器及测试:

1,启SVN服务,并指定SVN的根目录:

[root@youxia201 test]# svnserve -d -r /opt/svn/

2,服务已经正常起来:

[root@youxia201 test]# netstat -tunlp | grep svn

tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 8646/svnserve

3,测试:

在桌面上新建一个名称为svntest的目录,在此目录上点击右键,选择Checkout,在首行填写svn服务器的IP地址及仓库名称



输入相应的用户名称及密码后就可以使用了



如何同步到web目录?

同步前需要先用checkout命令把当前项目签出到web目录

svn checkout svn://localhost/default (进入web目录后再执行)

为了可以在修改完代码提交到SVN服务器后,WEB服务器直接同步.需要配置SVN的钩子,打开hooks目录,

可以看到有一个post-commit.tmpl文件,这是一个模板文件,

复制一份放在此目录下,命名为post-commit

里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件.

我的文件内容为

#!/bin/sh

export LANG=zh_CN.GBK

/usr/local/svn/bin/svn update --username lida --password lida svn://localhost/default /www/web/

说明:

#!/bin/sh 说明是执行shell命令

export LANG=zh_CN.GBK 是为了解决svn post commit
中文乱码,设置本地化编码,因为我的系统为GBK编码,SVN默认是UTF-8编码,如果不设置将会出现错误,而执行不成功,错误标识为svn:
Can't convert string from native encoding to 'UTF-8'

/usr/local/svn/bin/svn update --username lida --password lida svn://localhost/default /www/web/ 执行更新操作

如果提示:post-commit hook failed (exit code 255) with no output赋予post-commit文件可执行权限

如果您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交

文章转载自:http://chlotte.blog.51cto.com/318402/382700
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: