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

安装了一下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地址及仓库名称

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

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

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

如何同步到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

你可能感兴趣的:(centos)