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
添加红圈部分
#vim passwd
#vim authz (添加文字)
借鉴网友: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
[[email protected] ~]# svnserve -d -r /data/svn/ //启动SVN [[email protected] ~]# netstat -ln | grep 3690 //查看端口状态
客户端
下载客户端程序TortoiseSVN,默认安装
提交文档
在服务端创建一个文件夹,实现客户端修改版本上传服务端,服务端把资源同步到另一个文件夹。
[[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配置文件里配置的信息
更改客户端的代码本,进行更新测试。
客户端基础查看
TortoiseSVN-show log 看到历史版本的对比
TortoiseSVN-RePo-browser 看到已经上传的文档。
svn的其他操作详细和解释借鉴网友:https://www.cnblogs.com/weifeng1463/p/7593729.html
总结:SVN是代码版本控制,也可以用作文档对比。主要是写代码后,进行更新自动上传使用。结合网友提供宝贵经验,才部署成功,并且测试几个案例。仅仅这些还往往不够,因为客户端设置check out的设置时,怎么切换别的用户进行操作还是一个疑问?因为开发可能是几个人负责几个模块,每个人需要一个svn的用户名进行各自的上传,节省工作时间,提高效率。有知道网友可以留言告诉我下,希望经验对你有帮助。IT无止境,前行无止境。