LINUX环境下SVN安装与配置(利用钩子同步开发环境与测试环境)

安装采用YUM一键安装:

1.环境Centos 6.6

2.安装svn
yum -y install subversion

3.配置

建立版本库目录
mkdir /www/svndata

svnserve -d -r /www/svndata

4.建立版本库

创建一个新的Subversion项目
svnadmin create /www/svndata/project

5.版本库配置

进入对应的版本库如nilrxx,里面有一些自动给生成的文件。在conf目录下就是我们需要配置的三个文件:authz  passwd  svnserve.conf

现只记录我得成功配置如下:

  5.1:打开svnserve.conf,打开下面这条语句的注释就行

      password-db = passwd

  5.2:打开passwd文件,加入一个用户并制定密码即可

      ruanwenwu = 123456

6.开启svn服务

  6.1: svnserve -r -T -d /www/svndata

     解释:后面跟着的时仓库目录,并不是项目目录

  6.2:将这个命令加入到开机启动:

     vi /etc/rc.local

    将6.1的命令加入到文件中即可

7.这时就可以将项目目录import到我们的项目仓库了

  7.1:进入我们的项目目录比如:/home/wwwroot/www.doubilaile.com

     cd /home/wwwroot/www.doubilaile.com

  7.2: svn import ./ svn://192.168.1.233/project

     运行这条命令可能出现$svnEditor环境变量的问题,只需要运行这条命令就行了:export SVN_EDITOR=vim

    命令执行成功会弹出一个日志文件编写输入的情况,随便写两句保存即可。到这里项目就被导了进来。

8.到这里就可以打开window的svn客户端checkout项目了,路径是svn://192.168.1.233/project

 如果碰到目标计算机积极拒绝的情况,请检查LINUX是否开启了防火墙,如果开启了就关闭。

 查看防火墙状态:sevice iptables status;

关闭防火墙:service iptables stop;

 永久关闭: chkconfig iptables off;

我们经常需要提交代码后同时在LINUX环境下进行测试。怎么办呢?可以利用svn的hook来解决。

利用SVN的钩子同步更新代码的方法详解

先普及一下小常识
SVN的钩子,即hook(在每个版本库下有hooks文件夹,里面有很多钩子程序,我的目录是/home/svn/fitness/hooks/)。在subversion执行一个操作时,就会相应的首先去调用相关的钩子程序。
 
 
我们在开发时都会建立测试环境,不需要每个人都Update到本地再测试。
基于SVN的这种特性,要想实现一个同步的测试服务器,我们只需要在用户执行完毕commit操作后,让钩子程序自动更新测试服务器的文件即可。
 
 
 
有了这样的思路,我们就开始建立post-commit的钩子吧
 
1、在网站的目录下,使用checkout命令建立一个副本 #svn co SVN_URL /var/www/mySite/
  例如:svn co svn://192.168.1.233/project /var/www/www.doubilaile.com/
  这句话的意思其实就是将仓库中得代码checkout到/var/www/www.doubilaile.com/这个目录下。
 
2、现在设置钩子,复制仓库project中的/hooks/post-commit.temp文件为post-commit,并修改文件的权限#chmod 755 post-commit
 
3、编辑post-commit,把以下代码写入

#!/bin/sh

export LANG=zh_CN.GBK

svn update --username ruanwenwu --password 207099 /home/www/www.doubilaile.com

 
第一条命令是window本地字符编码,第二条是同步 
大功告成,可以使用了。关于这个post-commit文件,可以完全采用上面的语句,不用管默认的。亲测可以通过。至此,一个完整的SVN同步,并在测试环境下同步的工作便完成了。 

    

上一篇:SVN与eclipse整合和利用、SVN与Apache综合


下一篇:查找mysql数据库中所有包含特定名字的字段所在的表