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。

  • 相关阅读:
    关于返回上一页功能
    Mybatis Update statement Date null
    SQLite reset password
    Bootstrap Validator使用特性,动态(Dynamic)添加的input的验证问题
    Eclipse使用Maven2的一次环境清理记录
    Server Tomcat v7.0 Server at localhost failed to start
    PowerShell一例
    Server Tomcat v7.0 Server at libra failed to start
    商标注册英语
    A glance for agile method
  • 原文地址:https://www.cnblogs.com/MrGaoyi/p/8245714.html
Copyright © 2011-2022 走看看