运行环境

系统版本:CentOS Linux release 7.3.1611 (Core)

软件版本:Suberversion-1.7.14

硬件要求:无

安装过程

1、安装YUM-EPEL源

Subversion软件包由EPEL-YUM源提供。

[root@localhost ~]# yum -y install epel-release.noarch
[root@localhost ~]# yum clean all
[root@localhost ~]# yum makecache

2、安装Subversion

[root@localhost ~]# yum -y install subversion

3、查看Subversion版本

[root@localhost ~]# svnserve --version -q
1.7.14

4、新建一个存储库

我们新建一个存储库"test",用于测试。

[root@localhost ~]# mkdir -p /data/svn/test
[root@localhost ~]# svnadmin create /data/svn/test/

5、配置存储库

[root@localhost ~]# vim /data/svn/test/conf/svnserve.conf
[general]
### 通用配置 ###
anon-access = none
# 配置匿名访问。
# read - 开启匿名访问功能,访问者拥有只读的操作权限。
# write - 开启匿名访问功能,访问者拥有可读可写的操作权限。
# none - 关闭匿名访问功能。
# 注:在开启授权访问的时候此项建议设置为“none”,不然会造成版本日志无法正常被客户端查看。
auth-access = write
# 配置授权访问,登录需要使用账号和密码。
# read - 开启授权访问功能,访问者拥有只读的操作权限。
# write - 开启授权访问功能,访问者拥有可读可写的操作权限。
# none - 关闭授权访问功能。
password-db = passwd
# 设置用户账号密码文件路径。
# 当开启授权访问时,用于配置用户的账号和密码。
authz-db = authz
# 设置用户权限控制文件路径。
# 当开启授权访问时,用于配置用户对存储库中的目录的操作权限。
realm = My First Repository
# 设置存储库的认证空间名,唯一标识,可以设置为存储库的路径,便于识别,也可以是一段描述信息。

6、创建存储库账号和密码

[root@localhost ~]# vim /data/svn/test/conf/passwd
[users]
### 配置账号密码 ###
# 配置格式:账号 = 密码。
test01 = 123456
test02 = 123456
test03 = 123456 7、配置账号操作权限
[root@localhost ~]# vim /data/svn/test/conf/authz
[groups]
### 配置用户组 ###
# 配置格式:组名 = 用户1,用户2,用户3、....
tests = test01,test02,test03 ### 配置用户对存储库目录权限 ###
# 配置格式:
# [存储库:目录]
# 用户 = 操作权限
# @用户组 = 操作权限
# * = 操作权限
# 操作权限:
# 空 - 无访问
# r - 只读
# rw - 可读可写
[test:/]
test01 = r
# 配置用户“test01”对存储库中的目录“/”拥有只读的操作权限。
@tests = rw
# 配置用户组“test”对存储库中的目录“/”拥有可读可写的操作权限。
* =
# 配置其他所有用户对存储库中的目录“/”没有任何访问权限。

8、启动Subversion服务

Subversion服务的默认端口为3690。

[root@localhost ~]# svnserve -d -r /data/svn
[root@localhost ~]# netstat -lnupt |grep svnserve
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 12135/svnserve

9、SVN客户端操作

SVN的客户端与服务端都是同一个软件,但是不同的操作命令。

9.1、配置文件忽略

默认情况下,SVN客户端会全局忽略上传一些“.so、.lib”库文件,防止无效的动态链接库文件及冗余文件上传,但是有时候我们这些文件也非常重要,需要上传时,则需去掉这些忽略项,编辑客户端配置文件去掉忽略项即可。

[root@localhost ~]# vim /root/.subversion/config
[miscellany]
# global-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo
global-ignores =

9.2、将远端存储库检出到本地

将远端的存储库检出到本地目录,那么这个本地目录就会变成一个本地存储库,我们在这个目录下的一些操作都可以同步到远端存储库中。

我们第一次访问SVN存储库,需要输入账号密码,客户端会提示你“是否需要记住此账号密码”,我们选择“yes”记住密码,这样后面的操作就不需要频繁的输入账号密码了,用户账号密码会存储到“/root/.subversion/auth”目录下。

如果我们想要更换账号则只需要清除此目录即可。

[root@localhost ~]# mkdir test
[root@localhost ~]# svn checkout svn://172.18.188.121/test test
Authentication realm: <svn://172.18.188.121:3690> My First Repository
Password for 'root':
Authentication realm: <svn://172.18.188.121:3690> My First Repository
Username: test01
Password for 'test01': -----------------------------------------------------------------------
ATTENTION! Your password for authentication realm: <svn://172.18.188.121:3690> My First Repository can only be stored to disk unencrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details. You can avoid future appearances of this warning by setting the value
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in
'/root/.subversion/servers'.
-----------------------------------------------------------------------
Store password unencrypted (yes/no)? yes
Path: test
URL: svn://172.18.188.121/test
Repository Root: svn://172.18.188.121/test
Repository UUID: 14645214-cae9-4e70-a9cd-d19f3063813f
Revision: 0
Node Kind: directory
Last Changed Rev: 0
Last Changed Date: 2019-03-10 11:31:07 +0800 (Sun, 10 Mar 2019)

9.3、查看本地存储库信息

[root@localhost ~]# cd test/
[root@localhost test]# svn info

9.4、添加一个文件

[root@localhost test]# touch file01
[root@localhost test]# svn add file01
A file01

9.5、查看本地存储库文件变化状态

[root@localhost test]# svn status
A file01

9.6、将本地存储库的操作提交到远端存储库中

[root@localhost test]# svn commit -m '添加文件file01'
# 选项:
# -m 添加描述信息。
Adding file01
Transmitting file data .
Committed revision 1.

9.7、查看远端存储库中有那些文件

我们可以看到远端存储库中存在了我们刚刚添加的文件。

[root@localhost test]# svn list svn://172.18.188.121/test
file01

9.8、删除一个文件

[root@localhost test]# rm -rf file01
[root@localhost test]# svn delete file01
D file01
[root@localhost test]# svn status
D file01
[root@localhost test]# svn commit -m '删除文件'file01''
Deleting file01
Committed revision 2.
[root@localhost test]# svn list svn://172.18.188.121/test

9.9、更新本地存储库

当其他用户修改了远端存储库中的文件,我们需要更新本地存储库,以保证远端和本地存储库中版本一致,否则会出现版本冲突问题。

[root@localhost test]# svn update
Updating '.':
At revision 2.

9.10、文件恢复之版本退回

当我们不小心删除了存储库中的文件,并执行了提交操作时,想要找回被删除的文件时,只需要将版本回退到上一个版本即可。

将上一个版本的文件更新到本地存储库中,但是我们在执行“update”操作的时候,会将本地存储库更新到最新的版本,那么你会发现文件还是会被删除。

[root@localhost test]# svn log -v -l 2
------------------------------------------------------------------------
r2 | test01 | 2019-03-10 15:27:54 +0800 (Sun, 10 Mar 2019) | 1 line
Changed paths:
D /file01 删除文件file01
------------------------------------------------------------------------
r1 | test01 | 2019-03-10 15:27:23 +0800 (Sun, 10 Mar 2019) | 1 line
Changed paths:
A /file01 添加文件file01
------------------------------------------------------------------------
[root@localhost test]# svn update -r 1
Updating '.':
A file01
Updated to revision 1.
[root@localhost test]# ls
file01

9.11、文件恢复之版本合并

当我们不小心删除了存储库中的文件,并执行了提交操作时,想要找回被删除的文件时,只需要将版本回退到上一个版本即可。

但是你如果想要让删除前的操作为最新版本的话,则需要将最新的版本和上一个版本合并,这样就可以永久的做到文件恢复。

[root@localhost test]# svn log -v -l 2
------------------------------------------------------------------------
r2 | test01 | 2019-03-10 15:27:54 +0800 (Sun, 10 Mar 2019) | 1 line
Changed paths:
D /file01 删除文件file01
------------------------------------------------------------------------
r1 | test01 | 2019-03-10 15:27:23 +0800 (Sun, 10 Mar 2019) | 1 line
Changed paths:
A /file01 添加文件file01
------------------------------------------------------------------------
[root@localhost test]# svn merge -r 2:1 .
[root@localhost test]# svn update
Updating '.':
At revision 2.
[root@localhost test]# ls
file01

9.12、解决版本冲突问题

当本地存储库版本为“1”,我们在本地存储库中修改了文件,但是并未提交。这个时候远端存储库由于有其他用户做了提交操作,修改了相同的文件,现在远端存储库版本为“3”,那么这个时候我们在做“commit”或者“update”的时候就会出现版本冲突问题。

我们这个时候的解决方法就是将自己已经修改的文件拷贝到主机的其他目录下,然后将本地存储库回退到最初的版本状态,在执行“update”操作,然后再将文件拷贝到对应的本地存储库目录下,覆盖,在“commit”。

将本地存储库恢复到修改前的状态:

[root@localhost test]# svn revert .
这也可以是一个已修改的文件:
[root@localhost test]# svn revert file01
Reverted 'file01'

安装Suberversion[SVN]到CentOS(YUM)的更多相关文章

  1. redhat下yum命令安装(替换为centos yum命令)

    redhat默认自带的yum源需要注册,才能更新,报错:This system is not registered to Red Hat Subscription Management. You ca ...

  2. CentOS7 编译安装 Mongodb (实测 笔记 Centos 7.0 + Mongodb 2.6.6)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...

  3. CentOS7 编译安装 Nodejs (实测 笔记 Centos 7.0 + node 0.10.33)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...

  4. CentOS7 编译安装 Nginx (实测 笔记 Centos 7.0 + nginx 1.6.2)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...

  5. CentOS7 编译安装 Mariadb (实测 笔记 Centos 7.0 + Mariadb 10.0.15)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...

  6. CentOS 编译安装 Redis (实测 笔记 Centos 7.3 + redis 3.2.8)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...

  7. CentOS 编译安装 Nodejs (实测 笔记 Centos 7.3 + node 6.9.5)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...

  8. 阿里云服务器Linux CentOS安装配置(二)yum安装svn

    阿里云服务器Linux CentOS安装配置(二)yum安装svn 1.secureCRT连接服务器 2.先创建一个文件夹,用来按自己的习惯来,用来存放数据 mkdir /data 3.yum安装sv ...

  9. 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat

    阿里云服务器Linux CentOS安装配置(四)yum安装tomcat 1.yum -y install tomcat  执行命令后,会帮你把jdk也安装好 2.tomcat安装目录:/var/li ...

随机推荐

  1. mysql8.0.13本地安装忘记密码解决办法

    之前一直用图形化界面,加上考研期间也没动,竟然把我的数据库密码给忘了,无地自容....... 找了找教程,问题如下: MySQL从低版本向高版本迭代变化的过程,越来越严谨的安全性是其一大特点之一,在版 ...

  2. SpringMVC异常(404,接收参数类型转换错误)

    内容 一.异常信息 HTTP Status 400 - type Status report message description The request sent by the client wa ...

  3. parseFloat的取值

    <script type="text/javascript"> document.write(parseFloat("10")) document. ...

  4. MySQL外键约束On Delete和On Update的使用

    On Delete和On Update都有Restrict,No Action, Cascade,Set Null属性.现在分别对他们的属性含义做个解释. ON DELETE restrict(约束) ...

  5. vue项目处理dpr和多屏幕适配问题

    <!DOCTYPE html> <html style="font-size:37.5px"> <head> <meta charset= ...

  6. redis笔记补充

    redis补充 这篇文章是redis入门笔记的补充. 1.info命令 用来显示服务的信息. info命令可以跟下面的选项: server: 关于 Redis 服务器的一些信息 clients: 客户 ...

  7. STL空间分配器源码分析(二)mt_allocator

    一.简介 mt allocator 是一种以2的幂次方字节大小为分配单位的空间配置器,支持多线程和单线程.该配置器灵活可调,性能高. 分配器有三个通用组件:一个描述内存池特性的数据,一个包含该池的策略 ...

  8. Kubernetes部署单元-Pod

    在 k8s 搞出 pod 概念的时候,其实 docker 官方就已经推出自己的容器编排应用 swarm.这一套服务可以帮助在不同节点上的容器,进行统一的管理,主要针对容器的启停,运维,还有部署,注意我 ...

  9. css 实现随风摆动

    无标题文档 @-webkit-keyframes open { 0% { -webkit-transform: rotateX(-120deg); } 25% { -webkit-transform: ...

  10. python基础练习题(题目 模仿静态变量的用法)

    day27 --------------------------------------------------------------- 实例041:类的方法与变量 题目 模仿静态变量的用法. 程序 ...