1、安装
yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql -y
2、查看版本
svnserve --version
3、创建库并修改配置文件
 创建库:
创建所有库的父目录
mkdir /opt/svn
创建库1和库2
[root@localhost opt]# mkdir /opt/svn
[root@localhost opt]# svnadmin create /opt/svn/repo1
[root@localhost opt]# svnadmin create /opt/svn/repo2
将repo1中生成的config文件夹中authz文件和passwd文件复制一份到/opt/svn/conf文件夹下,使用该目录下的配置文件为所有库提供认证的账号密码
[root@localhost ~]# mkdir /opt/svn/conf
[root@localhost ~]# cp /opt/svn/repo1/conf/authz /opt/svn/conf/
[root@localhost ~]# cp /opt/svn/repo1/conf/passwd /opt/svn/conf/
[root@localhost ~]# ls /opt/svn/conf/
authz passwd
添加svn用户登录账号密码
[root@localhost ~]# cat /opt/svn/conf/passwd
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
[users]
# harry = harryssecret
# sally = sallyssecret
armo = passwd
[root@localhost ~]#
给新用户armo授权,定义用户armo和armo1都属于dev组,在repo的根“[/]”下,dev组有读写权限
[root@localhost ~]# cat /opt/svn/conf/passwd
[groups]
# harry_and_sally = harry,sally
# harry_sally_and_joe = harry,sally,&joe
dev = armo,armo1
[/]
@dev = rw
将所有库配置文件调用的账号文件和权限文件指向统一配置文件,该配置文件中所有配置必须在行首开始,否则无法识别
[root@localhost ~]# vi /opt/svn/repo1/conf/svnserve.conf
[root@localhost ~]# vi /opt/svn/repo2/conf/svnserve.conf
[root@localhost ~]# more /opt/svn/repo1/conf/svnserve.conf | grep =
#匿名账号权限
anon-access = none
#认证账号权限
auth-access = write
#指向全局密码文件
password-db = /opt/svn/conf/passwd
#指向全局授权文件
authz-db = /opt/svn/conf/authz
4、启动svn

  svnserve -d -r /opt/svn
        -d以守护模式启动进程
        -r /opt/svn 指向所有库的父目录
5、下载安装客户端
        下载对应32位或64位客户端进行安装
        安装过程中选择will be installed on local hard drive 
       
6、客户端连接SVN服务,开始第一个项目
    在客户端桌面,右键,选择SVN checkout
   
    进行账号认证 armo 密码 passwd,第三步设置的账号密码
   

    打开本地对应目录:D:\svntest\repo1,开始项目,测试创建文件并提交。
    新建文件后,在D:\svntest\repo1文件夹中,右键,选择SVN commit进行提交代码。
    SVN update从服务器上更新代码到本地
    SVN commit将本地代码提交至服务器
   
    提交到服务器的代码已二进制格式保存在/opt/svn/repo1/db/revs/0中,此时如果有新客户端进行check out,则会从服务器上同步已经提交的product文件夹和1.txt到新客户端本地
7、设置HOOKS,实现提交到SVN服务器的代码同步到目标目录当中
      在/opt/svn/repo1/hooks/中将post-commit.tmpl复制一份为post-commit,并且赋予执行权限,该hook在客户端执行commit之后会执行一次

  [root@localhost ~]# cp post-commit.tmpl post-commit
[root@localhost ~]# vi /opt/svn/repo1/hooks/post-commit
增加以下几行
export LANG=en_US.UTF-
#将提交的文件在/tmp/svn_up文件夹中进行更新同步
/usr/bin/svn update --username armo --password passwd /tmp/svn_up
#使用rsync同步文件到目标文件夹,不包含.svn文件
rsync -av --delete /tmp/svn_up/ /www/site/ --exclude=.svn
    设置完该HOOKS之后,客户端提交的代码,会先使用svn update更新一份到/tmp/svn_up中,在使用rsync同步一份到需要的站点目录下,完成自动上线

subversion(SVN)服务配置及使用方法的更多相关文章

  1. subversion(SVN)安装配置

    简介subversion(简称svn)是近年来崛起的版本管理软件系统,是cvs的接班人.目前,绝大多数开源软件都使用svn作为代码版本管理软件.Subversion是一个版本控制系统,相对于的RCS. ...

  2. svn服务配置和日常维护命令

    Subversion独立服务和与apache整合服务. 一 .Svn独立服务安装 操作系统: Redhat Linux AS3  AS 4   ContOS AS 4 安装包获取: 下载[url]ht ...

  3. CentOS7之SVN服务配置

    操作系统:CentOS Linux release 7.2.1511 (Core)    Subversion软件版本:subversion-1.7.14-10.el7.x86_64 1.首先检查sv ...

  4. svn服务配置

    1关闭所有svn服务 nie-xiao-bo-mac-pro:svnproject mac$ killall -9 svnserve 2.开启某文件路径svn服务 nie-xiao-bo-mac-pr ...

  5. SVN的配置与使用方法

    1.所选服务器安装包:VisualSVN-Server-2.1.3.msi. 2.客户端安装包:TortoiseSVN-1.6.2.16344-win32-svn-1.6.2.msi 一.服务器的安装 ...

  6. linux上配置subversion服务器端安装配置并使用svn,windows本地检出,设置同步更新服务器的钩子

    参考http://my.oschina.net/junn/blog/164041 http://songxj.blog.51cto.com/620981/396113 http://5iwww.blo ...

  7. SVN详细配置与使用 ——一步步教会您使用

    项目管理在项目开发活动中起到非常重要的作用,而对于初学者来说学习有一定的难度,且不说如何使用,就是搭建过程恐怕也要费一般周折,介于此下面就通过图解的方式一步一步详细的教大家如何使用SVN,你只要耐心的 ...

  8. Linux svn服务的搭建

    一.yum安装svn yum -y install subversion   二.查看已安装的svn版本信息 svnserve --version   三.创建一个代码库 1.先创建一个目录 mkdi ...

  9. Ubuntu Server搭建svn服务以及迁移方法【转】

    转自:http://www.linuxidc.com/Linux/2013-05/84693.htm Ubuntu Server搭建svn服务以及迁移方法 采用apache+svn,http访问方式. ...

随机推荐

  1. meta的相关属性

    <!DOCTYPE html> H5标准声明,使用 HTML5 doctype,不区分大小写<head lang=”en”> 标准的 lang 属性写法<meta cha ...

  2. js获取当前日期并格式yyy-MM-dd

    //格式化日期:yyyy-MM-dd function formatDate(date) { var myyear = date.getFullYear(); var mymonth = date.g ...

  3. vue路由在keep-alive下的刷新问题 对watch的影响

    转载自:https://www.cnblogs.com/dansingal/p/8302100.html 问题描述: 在keep-alive中的在跳转到指定的路由时刷新对应的路由,其余不刷新. 1 2 ...

  4. Springboot2.0实现URL拦截

    1.创建一个登陆拦截器SecurityInterceptor,它继承HandlerInterceptorAdapter类 package com.cn.commodity.config; import ...

  5. c#根据配置文件反射

    由于项目中用到了反射,准备把各个类库都先写在配置文件中,然后读取配置文件,再对配置文件中配置的类库进行反射. 这样做的好处是各个类库保持独立,其中一个类库出现问题不会影响其他类库,更新项目时,只要更新 ...

  6. c# Selenium ExpectedConditions 不存在

    Selenium中的显示等待指的是,等待某一元素出现或者等待页面加载完成后,才执行下一步.需要用到WebDriverWait类. 例如: , , )); var element = wait.Unti ...

  7. 在单元测试中处理Debug.Assert的好方法

    在单元测试项目的配置文件中配置好, <?xml version="1.0" encoding="utf-8"?> <configuration ...

  8. python-爬虫-史书典籍

    import requests import os from lxml import html import time def get_title_url(tree): '''一级 获取标题''' # ...

  9. jQuery I

    jQuery 两大特点: 链式编程:比如.show()和.html()可以连写成.show().html(). 隐式迭代:隐式对应的是显式.隐式迭代的意思是:在方法的内部进行循环遍历,而不用我们自己再 ...

  10. Ubuntu下借助URLOS实现快速安装DzzOffice企业办公套件

    如今,越来越多的个人.团队甚至企业都在使用GSuite或者Office365等网络办公套件,为什么人们越来越喜爱使用网络办公套件?一方面是考虑数字资产的安全性以及管理效率,另一方面则是日益增大的协同办 ...