安装Suberversion[SVN]到CentOS(YUM)
运行环境
系统版本: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)的更多相关文章
- redhat下yum命令安装(替换为centos yum命令)
redhat默认自带的yum源需要注册,才能更新,报错:This system is not registered to Red Hat Subscription Management. You ca ...
- 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 显示系统版 ...
- 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 显示系统版 ...
- 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 显示系统版 ...
- 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 显示系统版 ...
- 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 显示系统版 ...
- 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 显示系统版 ...
- 阿里云服务器Linux CentOS安装配置(二)yum安装svn
阿里云服务器Linux CentOS安装配置(二)yum安装svn 1.secureCRT连接服务器 2.先创建一个文件夹,用来按自己的习惯来,用来存放数据 mkdir /data 3.yum安装sv ...
- 阿里云服务器Linux CentOS安装配置(四)yum安装tomcat
阿里云服务器Linux CentOS安装配置(四)yum安装tomcat 1.yum -y install tomcat 执行命令后,会帮你把jdk也安装好 2.tomcat安装目录:/var/li ...
随机推荐
- 第二次课堂练习-连接hbase数据库-页面展示
图片来源:中国知网 页面来源:中国科学院文献情报中心-科技查新平台 如有侵权,请评论留言
- SSM框架整合(Spring、SpringMVC、Mybatis)
#毫无疑问我们肯定是使用Spring去整合SpringMVC和Mybatis,在整合过程中我们首先要让各自的模块实现,然后再去使用Spring整合:比如我先实现Mybatis框架的配置,然后再通过测试 ...
- windows上用命令行我们查看机器cpu信息(使用计算器-程序员模式-四字时,查看系统类型)
查看系统是64位还是32位 C:\Users\qingshuic>wmic os get osarchitecture OSArchitecture 64-bitC:\Users\qingshu ...
- Java 8 学习记录
Java 8 学习记录 官方文档 https://docs.oracle.com/javase/8/ https://docs.oracle.com/javase/8/docs/index.html ...
- C语言求最大公约数最小公倍数(多种方法)
前言 这个求解方式多样化,灵活变动,但是,网上没有很好的资源和很全的代码,特此练习,敲打后,总结成本片文章. 单一求解 一.最大公约数 1.穷举法(最简单求解方式) 利用除法方式用当前的数字不断去除以 ...
- Java语言学习day39--8月14日
今日内容介绍1.Map接口2.模拟斗地主洗牌发牌 ###01Map集合概述 A:Map集合概述: 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形 ...
- C#使用进程调用bash,不断往bash内插入命令并执行
呃呃呃,遇到了一个非常恶心得问题,现在就是,有几十万条数据需要当作参数调用python脚本 一次一次输入命令过去缓慢,经过了多层考虑决定使用进程来解决(不知道线程怎么开启bash得) 原理非常简单,类 ...
- XCTF练习题---MISC---神奇的Modbus
XCTF练习题---MISC---神奇的Modbus flag:sctf{Easy_Modbus} 解题步骤: 1.观察题目,下载附件 2.打开下载文件,发现可以用WireShark打开,打开看看是啥 ...
- mybatis两种嵌套查询方式
1,推荐用第一种 <select id="getTeacher2" resultMap="TeacherStudent"> select s.id ...
- Blazor Hybrid / MAUI 简介和实战
1. Blazor Blazor 是一个使用 .NET 生成交互式客户端 Web UI 的框架: 使用 C# 代替 JavaScript 来创建信息丰富的交互式 UI. 共享使用 .NET 编写的服务 ...