Svn在工作中的实践感悟
Svn是一款管理项目代码的版本控制系统,是基于集中式的版本控制系统。在工作中,由于实际开发工作的需要,部门是使用Svn来管理日常的项目开发任务。使用这么长时间了,来谈谈对Svn的感悟。
首先,说下工作流程。根据实际的需求,将整个项目流程分为四部分:本地,ft,uat和正式环境。本地主环境要是提供给员工在开发测试使用的,是在个人电脑上进行的,ft环境是测试人员进行测试场所,uat环境是预发环境,一般是给产品使用,而正式环境就是线上啦。
在每个环境下,包括多个文件夹,每个文件夹下是一个具体的项目,它们共用一套php框架(Thinkphp框架)。由于公司业务繁忙,因此开发人员多大数十个。平时除了开发新的任务外,还必须维护旧的代码和旧平台的快速迭代任务。在使用的过程中,觉得Svn版本控制系统,最大的优点就是能够集中管理项目代码,控制权限分配。针对不同级别的开发者,赋予不同的权限,这样可以避免代码提交的混乱,管理好项目代码,确保开发工作的正常进行。但也有问题存在。最典型的就是,由于是集中式的管理,大家提交的代码merge,commit到master时,类似于一条直线(针对同一个项目来说),不能跳过merge,这样在合并代码的时候就会出现冲突。举个栗子说明。我在A项目下的B文件中进行新任务的开发,然后同事C接到Boss命令,说A系统出现了问题,需要去fix。正好,出问题的地方在B文件下(同文件下不同地方)。那么就会出现一种很尴尬的情形:由于我的代码是在C之前提交到ft上的,还在被测试。而C修改的代码需要紧急上线,修补线上问题。在merge代码时,要不,就直接把我的代码也一并merge,然后commit,要不就忽略掉我的这个版本。如果先合并C的版本,而我的版本不管,二者就会产生冲突。由于开发者多,有很大概率会遇到这个问题。所以boss在合并代码时,经常要协调我们解决冲突。那么,有没有什么办法来解决呢?答案是有的。
那就是Git版本控制系统,它是基于分布式的版本控制系统。将项目代码分为master分支, dev分支,fix分支(为方便说明,暂分为三个分支)。master分支属于主线,只能合并代码,线上使用。dev分支就是日常开发者使用,大家日常项目开发,任务迭代均在此分支下。fix分支专门用来解决线上bug问题的。平时开发,dev分支进行,测试无误后,merge到master分支。如果线上出问题了,就在fix分支进行,修改完成,然后merge到master分支上即可。fix分支不会影响到dev分支,避免了冲突
Svn在工作中的实践感悟的更多相关文章
- centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课
centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobacku ...
- 《浏览器工作原理与实践》<10>作用域链和闭包 :代码中出现相同的变量,JavaScript引擎是如何选择的?
在上一篇文章中我们讲到了什么是作用域,以及 ES6 是如何通过变量环境和词法环境来同时支持变量提升和块级作用域,在最后我们也提到了如何通过词法环境和变量环境来查找变量,这其中就涉及到作用域链的概念. ...
- Git-【技术干货】工作中Git的使用实践
Git-[技术干货]工作中Git的使用实践 置顶 2019-09-17 21:02:16 web洋仔 阅读数 11444更多 分类专栏: Git 版权声明:本文为博主原创文章,遵循CC 4.0 B ...
- Mysql事务探索及其在Django中的实践(二)
继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...
- Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义
Atitit 软件开发中 瓦哈比派的核心含义以及修行方法以及对我们生活与工作中的指导意义 首先我们指明,任何一种行动以及教派修行方法都有他的多元化,只看到某一方面,就不能很好的评估利弊,适不适合自己使 ...
- 2015年,从毕业到工作的几点感悟(Android开发新人)
锄禾日当午,汗滴禾下土. 2015年,从毕业到工作的几点感悟(Android开发): 多用三方类库:(成长经验:尽量不要自己手动实现网络上已经有的优秀开源类库的功能,例如: 网络请求:常见 ...
- 运维工作中常用到的几个rsync同步命令
作为一个运维工程师,经常可能会面对几十台.几百台甚至上千台服务器,除了批量操作外,环境同步.数据同步也是必不可少的技能.说到“同步”,不得不提的利器就是rsync. 下面结合本人近几年运维工作中对这一 ...
- 测试工作中ADB命令实战
作者:TT,<测试架构师>微信公众号作者 大家能点击进来,说明还是对ADB有所了解或听说过的,可能也会比较熟练的掌握了这些命令,下面描述如有不对的地方,欢迎指正和交流学习,请多指教! 一. ...
- 华为云对Kubernetes在Serverless Container产品落地中的实践经验
华为云容器实例服务,它基于 Kubernetes 打造,对最终用户直接提供 K8S 的 API.正如前面所说,它最大的优点是用户可以围绕 K8S 直接定义运行应用. 这里值得一提是,我们采用了全物理机 ...
随机推荐
- 我要曝光!CDN 省钱大法!
七夕节刚过去,小明却特别郁闷,因为七夕当天,他错过了和远在北京的女神表白的机会.事情的经过是怎样的呢?为了在七夕当天送给自己女神一件礼物,小明在某购物网站上花重金购买了特别的礼物,礼物是从广东发送,结 ...
- Nginx学习系列二Linux下Nginx实现负载均衡
关于在本地虚拟机(VMware 14)下安装Linux同时安装Nginx,请参考Nginx学习系列之搭建环境 1.启动Nginx 在Nginx安装成功的前提下,启动Nginx 已root模式登陆(权限 ...
- IdentityServer4之Implicit(隐式许可)
IdentityServer4之Implicit(隐式许可) 参考 官方文档:3_interactive_login .7_javascript_client 概念:隐式许可 认证服务端配置 认证服务 ...
- 『Asp.Net 组件』第一个 Asp.Net 服务器组件:自己的文本框控件
代码: using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DemoWebControl ...
- 线程的私有领地 ThreadLocal
从名字上看,『ThreadLocal』可能会给你一种本地线程的概念印象,可能会让你联想到它是一个特殊的线程. 但实际上,『ThreadLocal』却营造了一种「线程本地变量」的概念,也就是说,同一个变 ...
- 【Zabbix】Zabbix Server自动发现
Zabbix自动发现 由于有上百台的虚拟机需要监控,如果一个个去添加配置,费时费力.Zabbix的自动发现,可以自动发现需要监控的机器,监控相应指标. 前置条件 安装部署好Zabbix Server. ...
- Linux之部署前后端分离项目
首先得看我前两个博客,把python3,虚拟环境,mariadb数据库,redis数据库,nginx安装好. 一.创建一个虚拟环境 1,创建虚拟环境 mkvirtualenv zijin #创建了一个 ...
- 【.NET Core项目实战-统一认证平台】第七章 网关篇-自定义客户端限流
[.NET Core项目实战-统一认证平台]开篇及目录索引 上篇文章我介绍了如何在网关上增加自定义客户端授权功能,从设计到编码实现,一步一步详细讲解,相信大家也掌握了自定义中间件的开发技巧了,本篇我们 ...
- Chrome F12调试工具常用技巧
原文地址:http://www.cnblogs.com/MuYunyun/p/5678405.html#3471461 阅读目录 Chrome调试工具介绍: 快速切换文件 在源代码中搜索 在源代码中快 ...
- JQuery——选择器
简单介绍一下什么是选择器:选择器是CSS样式中用来选择页面元素的一个特有的方式,而JQuery的选择器同样也是如此,JQuery的选择器简单的分为一下这几种:1.常用的CSS选择器 标签选择器:E{ ...