并行版本管理软件的使用(1)---3W 王泽宾 - 网站架构之家 - 51CTO技术博客

来源:百度文库 编辑:神马文学网 时间:2024/04/28 14:01:19
并行版本管理软件的使用(1)---3W 王泽宾
声明:本人非专业的软件配置管理人员,只是日常工作中经常使用,以下内容均代表个人观点,欢迎专业人士指正、补充。
What:什么是并行版本管理?
并行版本管理是软件配置管理(SCM)的一部分。软件配置管理(SCM)通俗来讲就是要控制与软件产品相关的文档资料、软件版本、变更文档以及软件运行的支持数据等等。并行版本管理主要工作是控制并行开发时的软件版本。
目前市场上并行管理软件最为常用的产品包括SVN、CVS和VSS。
在规模较大的软件公司或者互联网公司,都会有专门的岗位做这个事情。规模大一点的公司可能会设置配置管理部;规模小一点的有专人负责;规模再小一点的公司,不设岗位,开发人员兼任。
作为开发人员来讲,只要明白基本的原理以及日常使用就足够了,我看很多公司招聘的时候,把“是否会使用并行版本管理软件”作为聘用条件之一。其实这是很简单的一项技能,你花20分钟看完我的文章,你就足以应付,再配合一下实践工作就ok。
Why:为什么要使用并行版本管理呢?
我历来的观点:管理工具和管理手段的运用是为了减轻工作人员的负担而不是增加负担。如果仅仅为了管理的规范化,做一些表面文章,甚至于跟风,那么你的管理会是很失败的。为什么要实行版本管理呢?原因也很简单:它能够为研发人员的日常开发工作带来很大的便利。
实行版本管理到底会带来什么好处呢?
l         团队协作开发
本人对此深有体会,无论是在做C/S客户端软件还是开发B/S WEB开发,理论上,在一个项目组分工合理的情况下,团队成员应该各负其职,不会有工作上的重叠,但在实际工作中远远达不到这种理想情况。当项目达到集成阶段,是要把各个成员的开发结果捏合在一起,相互之间必然产生一定程度的耦合。任何一方的变动,都有可能影响他人的已经完成的工作。最常见的灾难就是代码互相覆盖。
l         分支版本开发
如果您公司从事的是项目开发,这个好处很有可能体会不到。因为项目开发一般到最终验收就结束了,以后基本上常规性的维护工作,不会有太多的版本发布。
如果您公司从事的是产品开发,那么这个好处就非常明显。您所开发的产品无论是自行运营销售还是代人开发,都会存在版本升级的问题。
通常,您的版本管理库中会包含3部分内容:主干开发版、枝干开发版和发布版。
主干开发版:继续开发的版本,版本号一直在增长,比如做完了Version1.0,继续做Version2.0,这个分支就是主干主干开发版。
枝干开发版:正在维护的版本。您除了进一步开发之外,以前的多个版本可能需要继续维护,这些版本就是枝干开发版。
发布版:已经发布的产品或在生产环境中运营的版本。这个版本是静态版本,它作为项目的一个里程碑进行了固化,不再允许改动。最终用户只能从发布版中获取所需要的产品。
l         错误版本回滚
新版本发布之后,即使这个通过了最为严密的验收测试,依然可能存在着重大缺陷。一旦出现这种情况,整个产品就必须下线,进行版本回退。这种情况还真不少见,我反正就在以前的公司都碰到过。这种情况是灾难性的,损失不可避免,采用错误版本回滚的方式,至少可以提供一定程度的补救。
l         历史修改记录
通过版本管理系统,你能够很方便地查阅项目的演变历史,获取任意时间的相关资料。有的领导也拿这个作为人员工作量考核的依据。
Where:什么样的场合需要使用并行版本管理呢?
如果您的公司规模很小,每个项目的开发人员就那么一两个,项目也不复杂,我倒觉得没必要引进配置管理的工作了,白白增加工作量。开发人员将文档、源代码和发行版本直接存放到一台文件服务器上,或者直接存放在开发人员的机器上都可以。既节约资源,又省去管理成本,何乐而不为。
如果一个项目会发生经常性的变动,比如修复bug,升级版本等,或者多个版本同时并行开发,我觉得你还是应该实行版本管理。另外,如果你的公司可能有较多的项目,需要将项目成果保留一段时间的话,实行版本管理也是个不错的选择。
以上基本能够讲清楚并行版本管理的有关知识,目前开发人员都选择什么的并行管理软件呢?各个软件到底有什么优缺点呢?我将结合个人的经历与大家共享。
本文出自 “网站架构之家” 博客,请务必保留此出处http://wangzebin.blog.51cto.com/653300/130423
本文出自 51CTO.COM技术博客
并行版本管理软件的使用(1)---3W 王泽宾 - 网站架构之家 - 51CTO技术博客 使用证书保护网站--兼谈证书服务器吊销列表的使用 - 王春海的博客 - 51CTO技术博客 OpenNMS系统架构 - 技术改变人生 - 51CTO技术博客 浅析大型网站的架构 - 51CTO.COM 独家专访Fred George:架构师是使用代码作画的大师(1) - 51CTO.COM RTF域在b/s下的一些使用技巧 - wnight88 - 51CTO技术博客 linux下监控磁盘使用空间的脚本 - firsthoo - 51CTO技术博客 浅谈人力资源管理软件开发的技术架构及优缺点 电子商务市场的主要分类 - 关注企业电子商务网站 - 51CTO技术博客 管好你网站的“破窗” - 网络新势力 - 51CTO技术博客-领先的IT技术博客 Yupoo! 的网站技术架构 独家专访Fred George:架构师是使用代码作画的大师 - 51CTO.COM 架构师:站在技术的山顶向前眺望 - 51CTO.COM 架构师:一群善于沟通的技术领袖 - 51CTO.COM Linux文件权限详解 - 麦麦的运维之路 - 51CTO技术博客 网站架构之首页的架构! 使用脚本自动创建AD中的层次化结构容器及对象 - 矩阵天空 - 51CTO技术博客-领先的... 看我出招之:我用Nagios(技术细节) - sery - 51CTO技术博客-领先的IT... 全新高校BBS爆笑签名档之2005消夏版 - 我的博客听我的 - 51CTO技术博客 讨人喜欢的27个原则 - 雨荷 - 51CTO技术博客 VRRP与HSRP的区别 - SENSE - 51CTO技术博客 regsvr32 注册.dll的用法 - carywu - 51CTO技术博客 hosts文件不起作用的解决办法 - 熊窝 - 51CTO技术博客 最不称职网络管理员 - 周海鹏微软技术社区 - 51CTO技术博客-领先的IT技术博客