• 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同步,并在测试环境下同步的工作便完成了。 

        

    坚持!
  • 相关阅读:
    insertSelective和insert的区别?
    @Valid和@BindingResult
    restful的put请求(坑),和HttpServletRequest做参数的作用
    ios网络编程读书笔记
    命令行杂记
    iOS杂记
    git项目收藏
    _Function_,_PRETTY_FUNCTION的区别
    iOS连接收藏
    转自别人的话
  • 原文地址:https://www.cnblogs.com/doubilaile/p/4591457.html
Copyright © 2020-2023  润新知