Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。

这些数据放置在一个中央资料档案库(repository) 中。这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。这样您就可以把档案恢复到旧的版本, 或是浏览文件的变动历史。

SVN 的一些概念

  • repository(源代码库):源代码统一存放的地方
  • Checkout(提取):当您手上没有源代码时,您需要从repository checkout一份源代码
  • Commit(提交):如果您已经修改了代码,您需要Commit到repository
  • Update(更新):当您已经Checkout了一份源代码,Update一下,您就可以与Repository上的源代码同步,您手上的代码就会有最新的变更

一、安装SVN

本文以CentOS7.3为例,说明如何在CentOS7.3上手动搭建svn服务器。

1. 远程连接Linux;

2. 运行以下命令安装SVN

yum install subversion

3. 运行以下命令查看SVN版本

svnserve --version

如图所示:

4. 按照以下步骤建立版本库:

4.1 运行以下命令创建目录

mkdir /var/svn

4.2 依次执行以下命令常见版本库

cd /var/svn
svnadmin create /var/svn/svnrepos

4.3 依次执行以下命令查看自动生成版本库文件

cd svnrepos
ls

Subversion目录说明:

  • db目录:所有版本控制的数据存放文件。
  • hooks目录:放置hook脚本文件的目录。
  • locks目录:用来追踪存取文件库的客户端。
  • format文件:是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
  • conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等)。

4.4 运行以下命令,进入conf目录(该SVN版本库配置文件),返回结果如下

cd conf/
ls
  • authz:是权限控制文件。
  • passwd:是账号密码文件。
  • svnserve.conf:SVN服务配置文件

4.5 按以下步骤设置账号密码:

4.5.1 执行以下命令,编辑passwd文件

vim passwd

4.5.2 按 i 键进入编辑模式

4.5.3 在 [users] 块中添加用户账号和密码,格式:账号=密码,比如示例中的suzhan = redhat(注意等号两端要有一个空格)

4.5.4 按 ESC 键退出编辑模式, 输入 :wq 命令保存并退出

4.6 按照以下步骤设置权限:

4.6.1 执行以下命令,编辑authz文件;

vim authz

4.6.2 按 i 键进入编辑模式;

4.6.3 在末尾添加如下代码(其中,r表示读,w表示写)

[/]
suzhan=rw

4.6.4 按 ESC 键退出编辑模式, 输入 :wq 命令保存并退出

4.7 按照以下步骤修改svnserve.conf文件

4.7.1 运行以下命令,编辑svnserve.conf文件

vim svnserve.conf

4.7.2 按 i 键进入编辑模式;

4.7.3 打开以下几个注释(注意每行不能以空格开始,等号两端要有一个空格):

anon-access = read #匿名用户可读,您也可以设置 anon-access = none,不允许匿名用户访问。设置为 none,可以使日志日期正常显示
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos #认证空间名,版本库所在目录

4.7.4 按 ESC 键退出编辑模式, 输入 :wq 命令保存并退出

5. 运行以下命令启动SVN版本库

svnserve -d -r /var/svn/svnrepos  #启动SVN版本库
ps -ef |grep svn  #查看SVN服务是否已开启

如果返回结果如下图所示,表示SVN服务已经开启。

6. 添加安全组规则

SVN服务的默认端口为TCP 3690。 需要防火墙的安全规则中添加TCP 3690端口(可参照mysql打开3690端口)。

7. 在Windows上测试SVN服务

svn://公网ip/    #SVN服务器的根目录

8. 运行以下命令停止SVN命令

killall svnserve

二、卸载SVN

yum remove subversion  

参考文章:阿里云>搭建和使用SVN

【阿里云开发】- 搭建和卸载svn服务器的更多相关文章

  1. 在阿里云上搭建自己的git服务器

    这篇文章我就来介绍一下如何在一台全裸的阿里云主机上搭建自己的git服务器. 1. 安装git 首先安装git,一般而言,现在的服务器已经内置了git安装包,我们只需要执行简单的安装命令即可安装.比如: ...

  2. 阿里云ECS搭建SVN配置外网

    阿里云ECS搭建SVN后,配置外网启动不了,检查云服务器没发现问题,后来发现是阿里云拦截,需要在阿里云控制台ECS安全组新增如下配置:

  3. 关于阿里云专有网络搭建FTP服务器的深坑

    之前用的FTP服务器都是,随便搭建一下就能用了, 昨天因为服务器的问题,换了个服务器,搭建FTP服务器的时候发现, 搭建的服务器居然只能使用 主动模式访问,改成被动后 无法获取目录, 百度了 各大论坛 ...

  4. 阿里云+wordpress搭建个人博客网站【小白专用的图文教程】

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  5. 阿里云+wordpress搭建个人博客网站

    [正文] 在阿里云上搭建使用个人博客主要分为以下几个步骤: 1.购买阿里云ECS主机 2.购买域名 3.申请备案 4.环境配置 5.安装wordpress 6.域名解析 声明一下,本人对服务器端的知识 ...

  6. 阿里云Centos搭建jdk环境

    当我们开始了自己的开发,那么云服务器是一定少不了的,当然也有很多同学只是在本地做开发研究. 这里记录一下我自己在阿里云上搭建环境的过程. 趁着优惠的时候,我在阿里云上购买了ECS云服务器,并且搭载了C ...

  7. 在阿里云上搭建私有GIT仓库

    在阿里云上搭建私有GIT仓库 年轻人就得好好学习,不能这么颓废 最近做项目练练手,用到了github, 但是github访问速度是真的慢啊,下载项目,下载一天了.所以呢,我是个成熟的人了,只好自己搭建 ...

  8. 基于阿里云server搭建SVNserver

    基于阿里云server搭建SVNserver 本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/details/8577 ...

  9. 阿里云VPS搭建Hexo博客

    最近买了一个阿里云服务器,准备写自己的网站,和将自己的作品放在上面:开始的时候,感觉就一个服务器应该很简单,但是从申请域名到备案,再到服务器搭建,没想到一波三折:闲话不多说,只是记录我在搭建时,最简单 ...

随机推荐

  1. dockerfile文件语法命令

    dockerfile文件语法命令 (1) FROM命令,支持两种形式,构建新镜像使用的基础镜像,所以源镜像必须存在,并且是非注释的第一条命令. DOCKERFILEFORM <image> ...

  2. 如何从OA系统批量整理出邮箱地址,并导入到Foxmail 地址薄中?

    一.打开某位leader的OA,点击查看“下属” a. 将所有的下属信息 --- 全选 --- 复制 --- 粘贴到 excel 表格中 b. 分别提取“姓名” 和 “邮箱”地址信息,结合notepa ...

  3. 解决EasyDSS、EasyNVR流媒体RTMP、HLS(m3u8)、HTTP-FLV播放提示H5播放错误的问题

    背景介绍 EasyDSS流媒体解决方案提供的是一站式的转码.点播.直播.录像.检索.时移回放服务,它的出现极大地简化了开发和集成的工作,基于其强大的后台管理能力,支持多种特性需求,完全能够满足企业视频 ...

  4. 基于EasyDSS流媒体RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案创建视频点播、短视频、视频资源库等视频播放系统

    需求背景 最近有很多用户咨询关于视频点播问题,主要需求集中在如何搭建属于自己的视频点播平台: 实现的功能可以大体归类为:对应自身拥有的视频文件,需要发布到一个网站,其他用户都可以实现点播观看. 针对于 ...

  5. js:如何获取select选中的值

    我想获取select选中的value,或者text,或者…… 比如这个: <select id="select">    <option value=" ...

  6. 【VS开发】Visual C++内存泄露检测—VLD工具使用说明

    Visual C++内存泄露检测-VLD工具使用说明 一.        VLD工具概述 Visual Leak Detector(VLD)是一款用于Visual C++的免费的内存泄露检测工具.他的 ...

  7. jenkins回滚之groovy动态获取版本号

    grovvy调试: 部署路径确定下来, 每个服务写死,传参 服务名 + 环境 给版本服务返回版本信息: groovy取分支: def gettags = ("git ls-remote -h ...

  8. MySQL中 while loop repeat 的用法

    -- MySQL中的三中循环 while . loop .repeat 求 1-n 的和 -- 第一种 while 循环 -- 求 1-n 的和 /* while循环语法: while 条件 DO 循 ...

  9. Redis Cluster集群重启出现的问题

    Redis Cluster集群重启出现的问题 由于机器故障导致redis集群停止,再次重启集群出现如下错误:Redis Cluster集群重启出现的问题:[ERR] Node 192.168.3.1: ...

  10. unexpected end of file while looking for precompiled headerdirective Add directive to 'stdafx.h' or rebuild precompiled header错误

    解决方式: 项目工程右键->propertity(属性),选择不用于预编译头 原因: C++的编译过程如下: 当头文件很多时,预编译过程需要耗费大量时间,为了减少重复编译的次数,C和C++提供了 ...