一、安装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。

Linux centos7系统下svn的安装与配置的更多相关文章

  1. [转]Linux(centOS6.5)下SVN的安装、配置及开机启动

    1.检查是否已安装 rpm -qa subversion 如果要卸载旧版本: yum remove subversion 2.安装 yum install subversion PS:yum inst ...

  2. Linux(centOS6.5)下SVN的安装、配置及开机启动

    http://www.blogjava.net/rockblue1988/archive/2014/11/19/420246.aspx

  3. linux下svn的安装与配置

    ---恢复内容开始--- linux下svn的安装与配置 Linux发行版本:CentOS6.5 1.安装subversion sudo yum -y install subversion 2.创建s ...

  4. nginx在Centos7.5下源码安装和配置

    安装nginx 安装nginx依赖包 yum install -y pcre-devel zlib-devel openssl-devel wget gcc tree vim 进入目录/root/se ...

  5. windows系统下GCC的安装与配置

    刚开始看 C++ Primer,看到编译器的部分,自己搜了搜怎么搭建GCC,搜到以下内容,复制过来留个印象: windows系统下GCC的安装方法,以及一些环境变量的配置,如果对GCC不是很清楚,关于 ...

  6. CentOS7系统下GitLab的安装、汉化、修改默认端口、开启发送邮箱

    一.centos7.4 下安装及汉化 =============================================== 2017/11/12_第6次修改                  ...

  7. Linux 下 SVN 的安装和配置

    SVN 是一个自由开源的版本管理系统,它可以按照时间的顺序去管理文件.目录以及对其进行的修改.于今,它被广泛的用于互联网公司的项目版本管理中 工作原理 它的工作原理如下图所示 它是由一个SVN服务器和 ...

  8. 第一讲 Windows10系统下IDE-CLion的安装与配置

    01 为什么使用CLion?02 CLion安装方法03 CLion的基本使用04 课程形式及答疑说明 toc 参考链接: Window10上CLion极简配置教程 学生免费注册Pycharm专业版 ...

  9. Mac OS X系统下利用VirtualBox安装和配置Windows XP虚拟机

    准备工作 下载并安装VirtualBox for Mac到https://www.virtualbox.org/wiki/Downloads下载VirtualBox <版本> for OS ...

随机推荐

  1. Java加密与解密笔记(三) 非对称加密

    非对称的特点是加密和解密时使用的是不同的钥匙.密钥分为公钥和私钥,用公钥加密的数据只能用私钥进行解密,反之亦然. 另外,密钥还可以用于数字签名.数字签名跟上文说的消息摘要是一个道理,通过一定方法对数据 ...

  2. 浏览器兼容性--IE11以及Edge等下载文件的中文名出现乱码,前后端解决方案

    项目中有用到文件下载功能,之前在处理下载时对IE浏览器下文件下载名进行过处理,测试也没有问题,但是功能上线后,业务反馈IE11文件下载文件名依然乱码.打印User-Agent字符串如下: IE11 U ...

  3. go defer (go延迟函数)

    go defer (go延迟函数) Go语言的defer算是一个语言的新特性,至少对比当今主流编程语言如此.根据GO LANGUAGE SPEC的说法: A "defer" sta ...

  4. Java I/O---添加属性和有用的接口—FilterlnputStream&FilterOutputStream

    0.装饰器模式 Java I/O类库需要多种不同功能的组合,这正是使用装饰器模式的理由所在.这也是Java I/O类库里存在filter(过滤器)类的原因所在,抽象类filter是所有装饰器类的基类. ...

  5. <tangmuchw>之新手vue项目小记--新建.vue文件,运行项目,出现error:This dependency was not found...

    错误码: This dependency was not found: * !!vue-style-loader!css-loader?{"minimize":false,&quo ...

  6. 【知了堂学习笔记】_String、StringBuffer与StringBuilder的区别

    String Stringbuffer  StringBuilder的区别: 1.string是字符串常量,且长度是不可改变的,Stringbuffer.stringBuilder是字符串变量 2.S ...

  7. eKing Cloud基础云平台演进之路

    出口转内销.首发于公司微信公众号,作者本人,现转载到此.本来写得比较技术,还算有点干货,但是结果被编辑咔咔咔,就只剩下下面这些内容. 大型企业如何开启自己的快速上云之路? 2017-12-08 易建科 ...

  8. python 嵌套字典比较值,取值

    #取值import types allGuests = {'Alice': {'apples': 5, 'pretzels': {'12':{'beijing':456}}}, 'Bob': {'ha ...

  9. vue监听scroll使用报错的解决办法

    错误说明:在切换路由以后,依旧在其他页面触发了scroll有关的函数, 错误原因:在spa项目中,window对象是不变的,所以每次使用后需要销毁. 解决办法:vue的生命周期destroyed中销毁 ...

  10. Bilateral Filter

    最近在看图像风格化的论文的时候,频繁遇到 Bilateral Filter.google 一波后,发现并不是什么不得了的东西,但它的思想却很有借鉴意义. 简介 Bilateral Filter,中文又 ...