linux进阶之SVN集中式版本控制系统篇
代码上线——版本控制系统
SVN 集中式版本控制系统
git 分布式版本控制系统
SVN是subversion的缩写,即版本控制系统,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(Repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样就可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括程序源码。
SVN采用客户端/服务器体系,项目的各种版本都存储在服务器上,程序开发人员首先将从服务器上获得一份项目的最新版本,并将其复制到本机,然后在此基础上,每个开发人员可以在自己的客户端进行独立的开发工作,并且可以随时将新代码提交给服务器。当然也可以通过更新操作获取服务器上的最新代码,从而保持与其他开发者所使用版本的一致性。
部署SVN步骤:
一、svn的安装
[root@ren5 ~]# yum -y install subversion #通过yum安装svn服务
二、创建目录并初始化
[root@ren5 ~]# mkdir /tmp/svn #在/tmp下创建目录svn,这里只是举个例子,可在其它目录创建
[root@ren5 ~]# svnadmin create /tmp/svn/repos #初始化该目录,命名为/tmp/svn/repos
三、导入代码
需要准备代码,所以我们创建一个模拟目录以及文件:
[root@ren5 ~]# mkdir /tmp/www
[root@ren5 ~]# cd /tmp/www/
[root@ren5 www]# mkdir trunk branches tags #创建三个模拟目录
[root@ren5 www]# cd trunk/
[root@ren5 trunk]# echo "Hello SVN" > a.html
[root@ren5 trunk]# ls
a.html
[root@ren5 trunk]# svn import /tmp/www/ file:///tmp/svn/repos -m "test1" #将/tmp/www目录的代码导入到/tmp/svn/repos里,并标识test1
正在增加 /tmp/www/tags
正在增加 .
正在增加 a.html
正在增加 /tmp/www/branches
提交后的版本为 1。
四、启动服务
[root@ren5 trunk]# vim /etc/sysconfig/svnserve #修改启动配置文件
OPTIONS="-r /tmp/svn" #修改启动服务调用目录
[root@ren5 trunk]# systemctl restart svnserve #修改好后,启动服务即可
五、打开上传权限
[root@ren5 trunk]# vim /tmp/svn/repos/conf/svnserve.conf #修改配置文件,开启上传权限,修改该文件不需要重启服务
anon-access = read
auth-access = write
password-db = passwd
realm = My First Repository
#将以上四行的注释去掉,使其生效
[root@ren5 trunk]# cd /tmp/svn/repos/conf/
[root@ren5 conf]# ls
authz passwd svnserve.conf
[root@ren5 conf]# vim /tmp/svn/repos/conf/passwd #修改配置文件,添加用户身份
ren = 123 #添加用户格式,前面是用户名,后为密码,中间等号,等号两边要有空格
六、开启svn服务防火墙
[root@ren5 trunk]# netstat -anp |grep svn #查看svn对应端口及协议
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 7855/svnserve
[root@ren5 trunk]# firewall-cmd --add-port=3690/tcp #开启3690端口防火墙
success
[root@ren5 trunk]# firewall-cmd --add-port=3690/tcp –permanent #永久开启
success
七、代码同步
[root@ren6 ~]# yum install -y subversion #下载svn
代码下载:
[root@ren6 ~]# mkdir /tmp/www/html #创建同步代码的目录
[root@ren6 ~]# cd /tmp/www/html/
[root@ren6 html]# svn checkout svn://192.168.11.5/repos #同步这台主机的repos目录中的代码
A repos/tags
A repos/trunk
A repos/trunk/a.html
A repos/branches
取出版本 1。
代码上传:
[root@ren6 html]# cd /tmp/www/html/repos/trunk/ #进入同步后的目录
[root@ren6 trunk]# echo test > new.html #模拟代码更新
[root@ren6 trunk]# svn add new.html #标记新版本的代码文件
A new.html
[root@ren6 trunk]# svn commit -m "test2" #提交上传,并标记为test2
认证领域: <svn://192.168.11.5:3690> My First Repository
“root”的密码: #svn认证的root密码,不需要写
认证领域: <svn://192.168.11.5:3690> My First Repository
用户名: ren
“ren”的密码: 123
-----------------------------------------------------------------------
注意! 你的密码,对于认证域:
<svn://192.168.11.5:3690> My First Repository
只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。
你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。
-----------------------------------------------------------------------
保存未加密的密码(yes/no)?no
正在增加 new.html
传输文件数据.
提交后的版本为 2。
八、其它命令
[root@ren6 ~]# svn status
svn: 警告: W155007: “/root”不是工作副本
[root@ren6 ~]# cd /tmp/www/html/repos/
[root@ren6 repos]# svn status #查看svn现在的状态(执行了什么操作)
[root@ren6 repos]# svn log #查看标记信息
------------------------------------------------------------------------
r1 | root | 2019-07-27 17:28:44 +0800 (六, 2019-07-27) | 1 行
test1
------------------------------------------------------------------------
svn update #通过命令可以同步代码版本
linux进阶之SVN集中式版本控制系统篇的更多相关文章
- Git学习系列之集中式版本控制系统vs分布式版本控制系统
不多说,直接上干货! Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央 ...
- git-版本管理工具的介绍+发展史+分布式版本控制系统和集中式版本控制系统的区别
一.版本管理工具的介绍: 1.备份文件: 2.记录历史: 3.多端共享: 4.团队协作: 二.版本管理工具的发展史: 1.cvs: 集中式 1985: 2.svn: 集中式 2000: 3 ...
- SVN集中式版本控制器的安装、使用与常见问题汇总
SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,集中式版本控制器 官方网站:https://www.visualsvn.com/ 下载右边的服务器端,左边的客 ...
- SVN 集中式版本控制软件
简介: 目前流行的版本控制软件中,SVN ( 集中式版本控制 ) 算是使用范围更广.且使用时间更早的一款了,现在 git ( 分布式版本控制 ) 更火爆一点. 一.安装svn [root@localh ...
- 集中式版本控制系统:从svn到tfs
06年进公司的时候,我们没有使用版本控制系统,所有代码都在部门经理的电脑上放着,谁要改什么代码就过去要一份最新的,改好之后再放回去,感觉好原始.据说之前是用过一段时间微软的vss(visual.sou ...
- 关于分布式版本控制系统Git与集中式版本控制系统SVN的区别
我觉得最最主要的区别就是:分布式Git主要是在本地有各个历史版本,在不联网的时候,也可以更新到最新版本和查看过去的版本,而集中式SVN是所有人都将版本上传到中央服务器,当出现断网情况的时候,用户只有一 ...
- 细说SVN集中式版本控制器
svn全称Subversion,实现多人开发同一个项目时,对源代码进行管理的工具.在公司里边,一个项目是由多人同时在开发,大家在本地自己电脑开发php代码,完毕后就commit上传给服务器运行. 如 ...
- Linux进阶之Git分布式版本控制系统篇
一.Git介绍 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核 ...
- SVN源代码的版本控制系统使用简介
SVN是以个开放源代码的版本控制系统,当前最流行的版本控制系统,GIT是近段时间刚兴起的. 下面开始介绍如何安装也配置 1先下载或者从别的地方弄一个安装包(本人是64位的,32位的就用32位的安装包) ...
随机推荐
- 解决WebStorm无法正确识别Vue3组合式API的问题
1 问题描述 Vue3的组合式API无法在WebStorm中正确识别,表现为defineComponent等无法被识别: 2 尝试方案 猜想这种问题的原因是无法正确识别对应的Vue3库,笔者相信Web ...
- .NET RulesEngine(规则引擎)
一次偶然的机会,让我拿出RulesEngine去完成一个业务,对于业务来说主要是完成一个可伸缩性(不确定的类型,以及不确定的条件,条件的变动可能是持续增加修改的)的业务判断.比如说完成一个成就系统,管 ...
- CentOS7 常用基础操作
系统目录结构了解 CentOS系统中没有磁盘的概念,一切皆文件,/目录下的的一个个文件夹目录就相当于磁盘了,这里简单记录几个常用的目录以及对应的作用: dev:Linux一切皆文件,包括硬件也进行了文 ...
- springboot的logback的配置文件
之前敲出来一个 logback 的配置文件,防止以后找起来麻烦在这里存个档 修改了日志输出的内容 设置默认级别为 INFO 正常日志 ( TRACE 到 WARN ) 输出到单独的文件夹 异常日志 ( ...
- shellcode隐写到像素RGB免杀上线到CS
利用把Shellcode隐写到图片像素RGB进行免杀上线到CS --by:chenw 0x01 前言 前几天跟一个朋友一起搞一个站的时候,发现那个站点开了很多杀软,使用CS的powershell马无法 ...
- 什么是响应式web设计
什么是响应式web设计 现在开发一个产品,基本上都会需要兼顾 PC端和 移动端. 一般有两种思路: 1.为每个终端做一个特定的版本,并给2级域名,根据终端环境调用不同的版本代码. 2.一个网站能够兼容 ...
- 从苏宁电器到卡巴斯基第30篇:难忘的三年硕士时光 VIII
自给自足 临近毕业答辩,别的导师的学生基本上都完成了各自的论文,也都开始交由第三方进行审核.而我们导师由于情况特殊,还没有机会看我们的论文,所以我们也打算和老师约一个时间,来给我们的论文提点意见,修改 ...
- 路由器逆向分析------QEMU的基本使用方法(MIPS)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/69258334 一.QEMU的运行模式 直接摘抄自己<揭秘家用路由器0day漏 ...
- 我为Dexposed续一秒——论ART上运行时 Method AOP实现
转载于:http://weishu.me/2017/11/23/dexposed-on-art/ 两年前阿里开源了 Dexposed 项目,它能够在Dalvik上无侵入地实现运行时方法拦截,正如其介绍 ...
- python 压缩模块大杂烩(zipfile,bz2,lzma,gzip,tarfile,zlib)
[*] 以下压缩模块请结合python的官方文档(https://docs.python.org/3.5/library/index.html)来实践或者对比(我的是python 3.5) 1.pyt ...