部署环境:
服务端: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无止境,前行无止境。

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

被折叠的 条评论
为什么被折叠?



