zoukankan      html  css  js  c++  java
  • Linux centos7系统下svn的安装与配置

    一、安装svn

      # yum -y install svn

    二、查看svn版本信息

      # svnserve --version

    三、搭建svn版本库(假设项目名称为project)

      1、首先创建版本库目录

      # mkdir -p /var/svn/project

      2、创建版本库

      # svnadmin create /var/svn/project  //版本库路径跟上一步保持一致

      前两步执行完成后 在 /var/svn/project/ 路径下就会创建一些版本配置、日志等文件夹和文件,目录如下

      

      后面主要修改的有 conf/ 和 hooks/ 两个

      conf/

      

      hooks/

      

      3、设置svn账号和密码

      # vi /var/svn/project/conf/passwd  //这里的文件路径可以用相对路径,也可以用绝对路径。例如:当前位置在 /var/svn/project/conf/中,则 #vi passwd 即可打开passwd文件了

      打开文件后,英文状态下按(i)键进入编辑模式,录入账号名和密码。格式 username = password。

      编辑完成后,先点击(Esc)键,然后同时按下(Shift+;),左下角出现(:),这时输入wq点击回车保存修改并退出。(lll¬ω¬)!!! 居然在描述文本文件编辑命令,后面再遇见就不这么详细了喵″

      

      4、设置svn账号的读写权限

      # vi /var/svn/project/conf/authz

      [group]为账号分组情况。格式groupname = username_1,username_2,,,

      [project:/]
      @manager = rw  //赋予manager组成员整个项目的读写权限

      [project:/php]

      @php = rw     //赋予php组成员项目库php分支的读写权限

      [project:/iOS]

      iOS_3 = rw    //赋予账号iOS_3项目库iOS分支的读写权限

      [project:/]

      * = r       //赋予所有成员整个项目读取权限

      保存退出

      

      5、修改项目svn相关配置文件

      # vi /var/svn/project/conf/svnserve.conf

      找到图中白色四行,去掉前面(#)即可,保存退出。

      

      6、启动svn版本库

      # svnserve -d -r /var/svn/

      这里的注意一下,启动svn版本库时路径最好写至svn/,因为后面可以再在该路径下创建其他项目版本库,这样就不必每个项目都启动一个svn进程了。

      7、查看svn进程

      # ps aux | grep svn

      

      8、端口设置

      # firewall-cmd --zone=public --add-port=3690/tcp --permanent  //开启svn端口,如果使用的是阿里云的服务器话,可能就要登陆阿里云控制台配置安全规则,具体配置方法阿里云那边有详细说明。

      # systemctl restart firewalld.service                //重启防火墙

      9、到这里版本库搭建就完成了。可以到本地使用svn工具检出看看

      

    四、SVN实现自动更新WEB目录

      前面有描述,svn项目下面有一个hooks/目录,里面存放的是全部的钩子脚本的模板。

      进入svn项目下的hooks/文件

      # cd /var/svn/project/

      新建编辑客户端提交后触发的钩子文件

      # vi post-commit

      编辑内容如下

    #!/bin/sh
    REPOS="$1"
    REV="$2"
    
    export LANG='zh_CN.UTF-8'
    
    SVN_PATH=/usr/bin/svn
    WEB_PATH=/var/www/project
    SVN_USER=gaoyi
    SVN_PW=gaoyi950815
    LOG_PATH=/var/svn/project/log/svn.log
    
    echo `datetime: "+%Y-%m-%d %H:%M:%S"` >>$LOG_PATH
    
    $SVN_PATH update $WEB_PATH --username $SVN_USER --password $SVN_PW --no-auth-cache >>$LOG_PATH
    

      保存退出后修改其文件权限

      # chmod 777 post-commit

      这里的钩子文件就编辑完成了。

      接着就到服务器web目录,也就是上面钩子中的WEB_PATH下checkout项目了。操作如下

      # svn checkout svn://192.168.6.74/project/ /var/www/project/

      其中第三部分为svn版本库地址,第四部分为web目录也就是项目地址

      第一次checkout时会要求输入用户名和密码以通过验证。

      checkout成功之后,后面提交的更新就会自动同步到web目录下来了。

      初次编写博客,写得有什么不对或不明了的地方还请各位指正提示!

      谢啦!!☆⌒(*^-゜)v。

  • 相关阅读:
    Android 操作系统架构开篇
    《构建之法》读后感
    《梦断代码》读后感
    学习日报
    学习日报
    记账本开发4
    记账本开发3
    学习日报
    学习日报
    记账本开发2
  • 原文地址:https://www.cnblogs.com/MrGaoyi/p/8245714.html
Copyright © 2011-2022 走看看