代码上线——版本控制系统

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集中式版本控制系统篇的更多相关文章

  1. Git学习系列之集中式版本控制系统vs分布式版本控制系统

    不多说,直接上干货! Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢? 先说集中式版本控制系统,版本库是集中存放在中央 ...

  2. git-版本管理工具的介绍+发展史+分布式版本控制系统和集中式版本控制系统的区别

    一.版本管理工具的介绍: 1.备份文件: 2.记录历史: 3.多端共享: 4.团队协作: 二.版本管理工具的发展史: 1.cvs: 集中式   1985: 2.svn:  集中式    2000: 3 ...

  3. SVN集中式版本控制器的安装、使用与常见问题汇总

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,集中式版本控制器 官方网站:https://www.visualsvn.com/ 下载右边的服务器端,左边的客 ...

  4. SVN 集中式版本控制软件

    简介: 目前流行的版本控制软件中,SVN ( 集中式版本控制 ) 算是使用范围更广.且使用时间更早的一款了,现在 git ( 分布式版本控制 ) 更火爆一点. 一.安装svn [root@localh ...

  5. 集中式版本控制系统:从svn到tfs

    06年进公司的时候,我们没有使用版本控制系统,所有代码都在部门经理的电脑上放着,谁要改什么代码就过去要一份最新的,改好之后再放回去,感觉好原始.据说之前是用过一段时间微软的vss(visual.sou ...

  6. 关于分布式版本控制系统Git与集中式版本控制系统SVN的区别

    我觉得最最主要的区别就是:分布式Git主要是在本地有各个历史版本,在不联网的时候,也可以更新到最新版本和查看过去的版本,而集中式SVN是所有人都将版本上传到中央服务器,当出现断网情况的时候,用户只有一 ...

  7. 细说SVN集中式版本控制器

    svn全称Subversion,实现多人开发同一个项目时,对源代码进行管理的工具.在公司里边,一个项目是由多人同时在开发,大家在本地自己电脑开发php代码,完毕后就commit上传给服务器运行.  如 ...

  8. Linux进阶之Git分布式版本控制系统篇

    一.Git介绍 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核 ...

  9. SVN源代码的版本控制系统使用简介

    SVN是以个开放源代码的版本控制系统,当前最流行的版本控制系统,GIT是近段时间刚兴起的. 下面开始介绍如何安装也配置 1先下载或者从别的地方弄一个安装包(本人是64位的,32位的就用32位的安装包) ...

随机推荐

  1. [面试仓库]CSS面试题汇总--布局篇

    一,盒模型   说到 CSS 布局这块的内容,首当其冲的就是我们的盒模型宽度计算问题,在开始我们的问题之前,我们首先要搞懂这些概念: 盒模型里面的内容(content): 也就是实实在在要展现的内容, ...

  2. Math类的random()方法

    Math类的random()方法 Math类的random()方法可以生成大于等于0.0.小于1.0的double型随机数. Math.random()方法语句基础上处理可获得多种类型.或任意范围的随 ...

  3. Kafka优雅应用

    Kafka API实战 注意版本问题这个,kafka-client要和kafka的版本一致 <dependency> <groupId>org.apache.kafka< ...

  4. Centos下搭建DNS域名解析服务器

    Centos下搭建DNS域名解析服务器 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转换成对应的主机名或将主机名转换成与之相对应ip地址的一种机制.其中通过域 ...

  5. 基于excel的接口自动化测试框架:支持参数化、关联等

    1. 框架结构说明 2. 框架代码实现 action 包  case_action.py business_process 包 main_process.py util 包 global_var.py ...

  6. Jenkins 分布式和并发构建

    1. 分布式构建 1.1 添加 linux 节点 1.2 添加 windows 节点 2. 并发构建 2.1 原理 2.2 示例:分别用 chrome/IE/Firefox 并行测试 1. 分布式构建 ...

  7. uni-app&H5&Android混合开发一 || 最全面的uni-app离线打包Android平台教程

    前言: 为什么会写这么一个教程,因为很久之前做过一个对接银行POS我们的系统是使用的H5开发的app应用.但是假如对结果银行相关业务的小伙伴应该都清楚,银行的业务相对于其他的对接方而言安全性比较高,而 ...

  8. 让vim显示空格,tab字符,及vim多行注释

    1.显示 TAB 键 文件中有 TAB 键的时候,你是看不见的.要把它显示出来: :set list 现在 TAB 键显示为 ^I,而 $显示在每行的结尾,以便你能找到可能会被你忽略的空白字符在哪里 ...

  9. Linux中环境变量的设置

    目录 环境变量 Shell定义的环境变量 查看环境变量 Linux下环境变量的设置 环境变量 在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软 ...

  10. 学习Canvas绘图与动画基础 绘制直线(二)

    1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="U ...