新用户注册入口 老用户登录入口

[转载]CentOS7 安装svn

文章作者:转载 更新时间:2024-01-26 12:24:26 阅读数量:544
文章标签:CentOS7权限控制启动服务
本文摘要:该文章详细介绍了如何在CentOS7系统中通过yum命令安装并配置Subversion(SVN)服务,包括创建版本库、编辑svnserve.conf等配置文件以实现权限控制,以及启动和设置开机启动SVN服务。文中还演示了如何通过firewallD开放默认端口3690,并给出了svn checkout、switch等常用命令的实例,涵盖了分支创建、合并与管理,以及tags的建立与删除操作。对于可能出现的SELinux权限问题也提供了临时关闭的解决方案。整体流程旨在帮助用户在CentOS7环境中搭建稳定且安全的SVN服务器。
转载文章

本篇文章为转载内容。原文链接:https://blog.csdn.net/lulitianyu/article/details/79675681。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

centos(我这里使用的是CentOS7)下yum命令即可方便的完成安装

$ sudo yum install subversion

测试安装是否成功:

$ svnserve --version

[root@lulitianyu ~]# svnversion --version
svnversion, version 1.7.14 (r1542130)
   compiled Aug 23 2017, 20:43:38


Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/

2. 建立版本库

创建svn数据目录(subversion默认是把/var/svn作为数据根目录的,开机启动默认也是从这里):

$ sudo mkdir -p /var/svn

创建版本库:

$ sudo svnadmin create /var/svn/wangwa

如果删除版本库:

$ sudo rm -rf /var/svn/somnus

3. 配置svn配置文件

每个版本库创建之后都会生成svnserve.conf主要配置文件。编辑它:

$ sudo vim /var/svn/somnus/conf/svnserve.conf

编辑示例:

[general]
anon-access = none                #控制非鉴权用户访问版本库的权限
auth-access = write                 #控制鉴权用户访问版本库的权限
password-db = passwd           #指定用户名口令文件名
authz-db = authz                     #指定权限配置文件名
realm = somnus                    #指定版本库的认证域,即在登录时提示的认证域名称

4. 编辑svn用户配置文件

sudo vim /var/svn/somnus/conf/passwd

编辑示例:

[users]
admin = admin                #用户,密码
fuhd = fuhd                #用户,密码
test = test                #用户,密码

5. 编辑svn权限控制配置文件

sudo vim /var/svn/somnus/conf/authz

编辑示例:

[groups]
admin = admin         #admin为用户组,等号之后的admin为用户
test = fuhd,test[somnus:/]                #表示根目录(/var/svn/somnus),somnus: 对应前面配置的realm = somnus
@admin = rw            #表示admin组对根目录有读写权限,r为读,w为写[somnus:/test]         #表示test目录(/var/svn/somnus/test)
@test = rw                #表示test组对test目录有读写权限

6. 启动,查看和停止SVN服务

启动SVN服务:

# -d : 守护进程  -r : svn数据根目录 
$ sudo svnserve -dr /var/svn            #用root权限启动

查看SVN服务:

$ ps aux|grep svnserve               #默认端口为:3690

7. 配置防火墙端口

首先要明确CentOS7的默认防火墙为firewallD。subversion的默认端口为3690,如果没有打开会报错:

$ sudo firewall-cmd --permanent -add-port=3690/tcp
$ sudo firewall-cmd --reload


8. 检索项目和切换项目的url

项目检错

$ svn checkout svn://192.168.0.112/XK_Project .     #使用 checkout  服务器资源 本地目录

切换项目url

$ svn switch --relocate svn://192.168.0.112/XK_Project svn://192.168.0.120/XK_Project   # 使用 switch 迁移 from  to 新的地址



9. 设置开机启动

centos7, 设置开机启动:

$ sudo systemctl enable svnserve.service      #注意:根目录必须是/var/svn 这样才能设置成功!!
#设置开机启动后就可以按下面的方式开启或停止服务了
$ sudo systemctl start svnserve.service
$ sudo systemctl stop svnserve.service

保存退出,重启并从客户端进行测试。如果报这样的错svn: E204900: Can't open file '/var/svn/somnus/format': Permission denied的错误。那就是与SELinux有关系,目前我还不太会用SELinux,那就先把SELinux关闭吧,后面学会了,回过头来再改这一段!!!!:

临时关闭:

$ sudo setenforce 0

永久关闭:

$ sudo vim /etc/sysconfig/selinux

修改:

SELINUX = disable               #值修改为disable.


svn帮助文档     http://riaoo.com/subpages/svn_cmd_reference.html


创建分支

svn cp -m "create branch" http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/branches/br_feature001 


获得分支 

svn co http://svn_server/xxx_repository/branches/br_feature001 


合并主干上的最新代码到分支上

cd br_feature001 

svn merge http://svn_server/xxx_repository/trunk 

如果需要预览该刷新操作,可以使用svn mergeinfo命令,如:

svn mergeinfo http://svn_server/xxx_repository/trunk --show-revs eligible

或使用svn merge --dry-run选项以获取更为详尽的信息。


分支合并到主干

一旦分支上的开发结束,分支上的代码需要合并到主干。SVN中执行该操作需要在trunk的工作目录下进行。命令如下:

cd trunk 

svn merge --reintegrate http://svn_server/xxx_repository/branches/br_feature001 

分支合并到主干中完成后应当删该分支,因为在SVN中该分支已经不能进行刷新也不能合并到主干。


合并版本并将合并后的结果应用到现有的分支上

svn -r 148:149 merge http://svn_server/xxx_repository/trunk


建立tags

产品开发已经基本完成,并且通过很严格的测试,这时候我们就想发布给客户使用,发布我们的1.0版本

svn copy http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/tags/release-1.0 -m "1.0 released"


删除分支或tags

svn rm http://svn_server/xxx_repository/branches/br_feature001
svn rm http://svn_server/xxx_repository/tags/release-1.0



本篇文章为转载内容。原文链接:https://blog.csdn.net/lulitianyu/article/details/79675681。

该文由互联网用户投稿提供,文中观点代表作者本人意见,并不代表本站的立场。

作为信息平台,本站仅提供文章转载服务,并不拥有其所有权,也不对文章内容的真实性、准确性和合法性承担责任。

如发现本文存在侵权、违法、违规或事实不符的情况,请及时联系我们,我们将第一时间进行核实并删除相应内容。

相关阅读
文章标题:[转载][洛谷P1082]同余方程

更新时间:2023-02-18
[转载][洛谷P1082]同余方程
文章标题:[转载]webpack优化之HappyPack实战

更新时间:2023-08-07
[转载]webpack优化之HappyPack实战
文章标题:[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法

更新时间:2023-09-10
[转载]oracle 同时更新多表,在Oracle数据库中同时更新两张表的简单方法
文章标题:[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo

更新时间:2024-03-11
[转载][Unity] 包括场景互动与射击要素的俯视角闯关游戏Demo
文章标题:[转载]程序员也分三六九等?等级差异,一个看不起一个!

更新时间:2024-05-10
[转载]程序员也分三六九等?等级差异,一个看不起一个!
文章标题:[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集

更新时间:2024-01-12
[转载]海贼王 动漫 全集目录 分章节 精彩打斗剧集
名词解释
作为当前文章的名词解释,仅对当前文章有效。
Subversion (SVN)Subversion是一款开源的集中式版本控制系统,它允许用户管理文件和目录的修订历史,包括文件添加、删除、修改等操作。在本文中,介绍了如何在CentOS7环境下通过yum命令安装Subversion,并详细描述了配置SVN服务器的过程,如创建版本库、设置权限、启动服务以及防火墙端口配置等步骤,以实现对项目源代码或文档进行版本控制与协同开发。
svnservesvnserve是Subversion提供的一个轻量级服务器程序,用于提供Subversion客户端访问版本库的服务。在文章中,我们看到通过运行svnserve命令可以启动一个后台守护进程来监听客户端请求,客户端可以通过svn协议与svnserve通信,从而实现对版本库内容的检出、提交和更新等操作。同时,svnserve还支持用户认证和权限控制,这在svnserve.conf等配置文件中进行设置。
firewallDfirewallD是CentOS 7及更高版本系统中默认使用的动态防火墙管理工具,取代了旧版系统的iptables。在本文中,为了确保外部客户端能够通过网络访问到已搭建好的Subversion服务器,需要使用firewallD开放Subversion服务所使用的默认端口3690,这一操作通过执行相应的firewall-cmd命令完成。firewallD提供了更加灵活且易于管理的防火墙规则设定方式,以适应现代网络环境中的服务管理和安全需求。
延伸阅读
作为当前文章的延伸阅读,仅对当前文章有效。
在深入了解了如何在CentOS 7系统中安装、配置和管理Subversion(SVN)服务后,不妨关注一下近年来版本控制系统的发展趋势以及Subversion的最新动态。随着分布式版本控制系统的兴起,Git已成为许多开发者首选的版本控制系统,但Subversion凭借其稳定性和易用性,在众多企业级项目中仍然占据一席之地。
近期,Apache Subversion项目团队宣布了Subversion 1.14.x系列的发布,这一版本引入了多项改进与新特性,例如增强的HTTP协议支持、性能优化以及对更现代库的依赖更新。同时,官方持续强化与改进了与IDE集成的能力,使得Subversion在多种开发环境中的使用体验更加流畅。
此外,针对企业内部安全需求日益增强的趋势,Subversion也在加强权限管理和审计功能。例如,通过结合第三方认证模块如LDAP或Active Directory,实现更为精细化的用户权限管控,确保代码资产的安全性。
值得注意的是,虽然Git在开源社区的应用越来越广泛,但Subversion由于其集中式存储的特点,在一些需要严格版本控制和集中管理的场景下仍具有独特优势。因此,在实际工作中选择适合的版本控制系统时,需充分考虑项目规模、团队协作模式及安全性要求等因素。
综上所述,掌握Subversion的运维管理技巧是IT专业人士必备技能之一,同时关注版本控制领域的发展动态,有助于我们更好地利用现有工具提升工作效率,并为未来的项目和技术选型做好准备。
知识学习
实践的时候请根据实际情况谨慎操作。
随机学习一条linux命令:
nice -n priority_level command - 设置命令运行优先级。
随便看看
拉到页底了吧,随便看看还有哪些文章你可能感兴趣。
Beego框架下JWT令牌生命周期管理:保障安全性、扩展性与优化用户体验的关键策略 10-15 jquery每日签到日历插件 10-10 docker是什么版本(docker ee是什么版本) 02-25 精美个性潮流服装在线商城网站模板 02-03 计算机领域分词词汇表,点这里免费下载txt,内有java的IKAnalyzer示例 01-26 HTML5绿色简约户外摄影网站模板 01-16 蓝色自适应汽车驾校公司网站静态模板 11-25 蓝色大气网站建设公司html网站模板下载 11-09 谷歌Material design风格隐藏侧边栏特效 10-09 本次刷新还10个文章未展示,点击 更多查看。
jBooklet-jQuery简单的翻书特效插件 10-04 docker支持x86(docker支持的linux版本) 08-31 jQuery拆分面板插件 08-27 jQuery响应式Pinterest样式无限动态加载图片瀑布流特效 08-22 Gradle构建变体:理解维度组合与ABI过滤,精准控制APK生成数量以符合预期 07-24 [转载]新手学习Python有需要去培训的必要吗? 07-01 SpringCloud中Hystrix熔断器的阈值设置与熔断时间控制:处理分布式系统服务故障实践 05-11 宽屏室内装饰设计公司网站模板 04-27 Java中join和yield 03-22 [转载]有汇源上下界最大流和最小流 02-17 通用流畅网上购物食品超市模板下载 01-15
时光飞逝
"流光容易把人抛,红了樱桃,绿了芭蕉。"