• linux 安装svn,并设置钩子来同步更新


    linux安装svn下载

    http://subversion.tigris.org/downloads/subversion-1.6.6.tar.gz
    和 http://subversion.tigris.org/downloads/subversion-deps-1.6.6.tar.gz

    1./configure --prefix=/opt/svn --without-berkeley-db --with-zlib=/usr/local/subversion-1.6(此处指明位置)
         (--prefix是指的安装目录,--without是不用apche 最后是使用依赖包)
    2.make &&make install
    3,在etc/profile 里面加入环境变量
    SVNPATH=$PATH:/opt/subversion/bin

    4.source profile 使环境变量生效
    5,检查版本 svn --version  svnserve --version(注意是两个横)

    6.建立版本库目录  选择一个目录之后 建立   mkdir -p svn
    cd svn 然后建立测试库 mkdir -p svntest

    7.建立版本库
    svnadmin create svntest

    8.修改配置文件
    cd svntest/conf
    ll
    -rw-r--r-- 1 root root 710 08-25 09:40 authz
    -rw-r--r-- 1 root root 325 08-25 09:38 passwd
    -rw-r--r-- 1 root root 1449 08-25 09:36 svnserve.conf

    vi svnserve.conf

    anon-access = none
    auth-access = write
    password-db = passwd
    authz-db = authz

    vi authz
    [svntest:/]
    lipeng = rw
    #给svntest仓库添加一个名称为lipeng 的用户,权限为可写。

    vi passwd
    lipeng = 123456
    为这个设置密码
    svnserve.conf
    (注意:这只是在svntest下生效的用户名密码,也可以统一写到svn/conf/authz和password里面,就相当于全局的,只要在版本库中的
    引入即可)

    9.启SVN服务,并指定SVN的根目录:
    [root@youxia201 test]# svnserve -d -r /usr/local/svn/
    -r指定服务器的根目录
    -d表示在后台运行

    服务已经正常起来:
    [root@youxia201 test]# netstat -tunlp | grep svn
    tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN      8646/svnserve

    10、开放服务器端口

    svn默认端口是3690,你需要在防火墙上开放这个端口。

          /sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT

          /sbin/service iptables save

    你也可以通过svnserve的--listen-port选项来指定一个已经开放的其他端口,不过这样的话客户端使用也必须家上端口,如svn://192.168.1.200:9999/.

    11,通过 netstat -tunlp | grep svn  找到进程id ,kill -9 id掉
    svnserve -d -r /usr/local/svn/ --listen-port 843 用这个端口打开

    然后重新启动就可以了

    12.由于svn服务器和客户端是不一样的,所以不能从服务器看到源文件,请注意
    但是可以在linux下新建一个文件夹,然后执行命令 svn checkout svn://192.168.1.200:9999/ 会提示输入linux终端的密码,以及svn用户名以及密码

    二,设置钩子

    我们知道要把svn的内容更新到web目录需要手动的svn up,但是今天笔者教你自动更新web目录的方法,我们要在svn版本库中配置钩子来实现,就是创建一个post-commit的配置文件,对其进行简单 的配置,简简单单的四步就可以实现Linux下SVN自动更新web目录配置。

    第一步:建立你的web程序目录
    mkdir /var/www/html/test

       进入/var/www/html/test目录。
       svn checkout svn://121.14.177.178:843/svntest 不重命名文件夹,直接在当前目录下检出
        svn checkout svn://121.14.177.178:843/svntest test 检出文件并且重命名文件夹
      
    第二步:在项目库的 hooks/ 目录下新建 post-commit 文件 【钩子脚本】
    添加脚本内容如下:
    #!/bin/sh
    SVN=/usr/bin/svn           #这里配置的是svn安装bin目录下的svn文件
    WEB=/var/www/html/test     #要更新的目录
    $SVN update $WEB --username xxx --password xxx (此版本是linux下,windows下是.bat,写法少有不同)
    其中SVN=右边改成 svn 命令位置
    WEB=右边改成你实际的web目录
    第三步:让post-commit有执行的权限 chmod 777 post-commit
    第四步:这里就已经完成了,第四步就是测试了。
    说明:
    #!/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/bin/svn update --username lxy --password 123456 /var/www/myproject 执行更新操作
    如果提示:post-commit hook failed (exit code 255) with no output赋予post-commit文件可执行权限
    如果您的默认编码就是UTF-8的,要上传中文文件,先将文件另存为UTF-8格式在提交
  • 相关阅读:
    express前后端分离session的使用
    wampserver2.5局域网IP访问配置
    wamp的HTTPS配置
    wampserver2.5局域网公网IP访问配置
    WampServer的安装
    Node.js的安装与使用-Windows系统
    外网连接Mysql云数据库
    ajax连接服务器框架
    servlet连接mysql数据库和oracle数据库
    c++的第一个程序-Helloworld
  • 原文地址:https://www.cnblogs.com/kongxs/p/3929687.html
Copyright © 2020-2023  润新知