安装了一下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