Cent os7部署 svn

    部署环境:

服务端:VM centos 7 64bit 

客户端:win 10

 

一、了解SVN

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

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

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

服务端部署

安装

[[email protected] ~]# rpm -qa subversion
subversion-1.7.14-10.el7.x86_64

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

[[email protected] ~]# 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。。

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

配置环境

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

[[email protected] project]# cd conf/
[[email protected] conf]# ls
authz  passwd  svnserve.conf
[[email protected] conf]# vim svnserve.conf 

添加红圈部分

Cent os7部署 svn

 

#vim passwd

Cent os7部署 svn

#vim authz  (添加文字)

Cent os7部署 svn

 

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

配置防火墙


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

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

Cent os7部署 svn

Cent os7部署 svn

 

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

Cent os7部署 svn

客户端

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

Cent os7部署 svn

提交文档

Cent os7部署 svn

Cent os7部署 svn

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

[[email protected] data]# mkdir www

[[email protected] 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目录文件

[[email protected] conf]cd /data/svn/project/hooks/
[[email protected] 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配置文件里配置的信息

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

Cent os7部署 svn

Cent os7部署 svn

Cent os7部署 svn

 

客户端基础查看

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

Cent os7部署 svn

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

Cent os7部署 svn

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

总结:SVN是代码版本控制,也可以用作文档对比。主要是写代码后,进行更新自动上传使用。结合网友提供宝贵经验,才部署成功,并且测试几个案例。仅仅这些还往往不够,因为客户端设置check out的设置时,怎么切换别的用户进行操作还是一个疑问?因为开发可能是几个人负责几个模块,每个人需要一个svn的用户名进行各自的上传,节省工作时间,提高效率。有知道网友可以留言告诉我下,希望经验对你有帮助。IT无止境,前行无止境。