Cent os7部署 svn

本文介绍如何在CentOS 7环境下部署SVN服务端并进行基本的配置,包括安装SVN、创建版本库、配置防火墙及端口、使用TortoiseSVN客户端提交文档等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    部署环境:

服务端:VM centos 7 64bit 

客户端:win 10 64bit

 

一、了解SVN

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。 ----百度百科

官网下载: http://subversion.apache.org/packages.html

SVN客户端TortoiseSVN :https://tortoisesvn.net/downloads.html

服务端部署

安装

[root@localhost ~]# rpm -qa subversion
subversion-1.7.14-10.el7.x86_64

[root@localhost ~]# yum remove subversion
'import sitecustomize' failed; use -v for traceback
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务。。。。。

[root@localhost ~]# yum -y install subversion
'import sitecustomize' failed; use -v for traceback
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
 * base: centos.ustc.edu.cn
 * epel: mirrors.ustc.edu.cn
 * extras: centos.ustc.edu.cn
 * updates: centos.ustc.edu.cn。。

[root@localhost ~]# svnserve --version
svnserve,版本 1.7.14 (r1542130)
   编译于 Apr 11 2018,02:40:28

配置环境

[root@localhost ~]# mkdir -p /data/svn/project
[root@localhost ~]# svnadmin create /data/svn/project/
[root@localhost ~]# ls /data/svn/project/                 #查看/data/svn/project 文件夹发现包含了conf, db,format,hooks, locks,                                                                                                                      README.txt等文件,说明一个SVN库已经建立。#
conf  db  format  hooks  locks  README.txt

[root@localhost project]# cd conf/
[root@localhost conf]# ls
authz  passwd  svnserve.conf
[root@localhost conf]# vim svnserve.conf 

添加红圈部分

 

#vim passwd

#vim authz  (添加文字)

 

借鉴网友:https://www.linuxidc.com/Linux/2017-10/147871.htm 在这里做每个变量的解释。

配置防火墙

 

图上是Centos6 的操作,centos7 基础上更新了。我这里挖坑有一会,因为防火墙如果不允许端口通过,客户端就访问不进来。并且我的iptables防火墙重启失败了,可以尝试我下面方法。做完后一定要在客户端telnet 服务端的端口

[root@localhost ~]# firewall-cmd --add-port=3690/tcp --permanent 
'import sitecustomize' failed; use -v for traceback
success
[root@localhost ~]# firewall-cmd --reload
'import sitecustomize' failed; use -v for traceback
success
[root@localhost ~]# firewall-cmd --list-ports
'import sitecustomize' failed; use -v for traceback
3306/tcp 3690/tcp

 

[root@localhost ~]# svnserve -d -r /data/svn/              //启动SVN
[root@localhost ~]# netstat -ln | grep 3690               //查看端口状态

客户端

下载客户端程序TortoiseSVN,默认安装

提交文档

在服务端创建一个文件夹,实现客户端修改版本上传服务端,服务端把资源同步到另一个文件夹。

[root@localhost data]# mkdir www

[root@localhost conf]# svn co svn://127.0.0.1/project /data/www/
认证领域: <svn://127.0.0.1:3690> /data/svn/project
“root”的密码: rootroot
认证领域: <svn://127.0.0.1:3690> /data/svn/project
用户名: user1  
“user1”的密码: password123456

保存未加密的密码(yes/no)?y
A    /data/www/mysqltext.txt.txt
A    /data/www/newsvn.txt
A    /data/www/text.txt.txt
取出版本 8。

客户端提交了版本修改之后,在之前的公司每次都是需要执行svn update命令,而且不小心会出现开发冲突。

下面来配置SVN钩子,来实现自动更新服务器WEB目录文件

[root@localhost conf]cd /data/svn/project/hooks/
[root@localhost conf]vim post-commit
#!/bin/sh
export LANG=zh_CN.UTF-8 
SVN=/usr/bin/svn  #这里填写你的svn程序目录
WEB=/data/www/ #这里填写你的web程序目录
$SVN update $WEB --username user1 --password password123456 #客户端的用户名和密码,在svn配置文件里配置的信息

更改客户端的代码本,进行更新测试。

 

客户端基础查看

TortoiseSVN-show log 看到历史版本的对比

TortoiseSVN-RePo-browser 看到已经上传的文档。

svn的其他操作详细和解释借鉴网友:https://www.cnblogs.com/weifeng1463/p/7593729.html

SVN的账号切换:

重新提交或者更新会弹出登录窗口

扩展:SVN服务器新增另外一个库文件,并赋予新的两个角色分权限访问。

[root@localhost runoob]#svnadmin create /data/svn/runoob

[root@localhost svn]# ls (已经含有两个项目库)
project  runoob

[root@localhost runoob]#cd /data/svn/runoob/

[root@localhost runoob]# ls
conf  db  format  hooks  locks  README.txt
[root@localhost runoob]# cd conf/
[root@localhost conf]# vim 
authz          passwd         svnserve.conf  
[root@localhost conf]# vim 
authz          passwd         svnserve.conf  
[root@localhost conf]# vim authz

新增红圈部分

[root@localhost conf]# vim passwd 新增红圈部分

[root@localhost conf]# vim svnserve.conf 新增红圈部分

[root@localhost conf]#svnserve -d -r /data/svn/  (如果第一个库开启程序了,第二个库就不需要在启动程序)

第一步:清除个人账户信息。(上面账户切换里面有)

第二步:创建文件夹,使用多个账号访问。

刚我建立两个账户,分别是user1和user2设置权限,user1设置wr权限,user2设置r权限。

总结:SVN是代码版本控制,也可以用作文档对比。主要是写代码后,进行更新自动上传使用。结合网友提供宝贵经验,才部署成功,并且测试几个案例。仅仅这些还往往不够。IT无止境,前行无止境。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值