快速业务通道

让开发自动化: 针对广大开发人员的并行开发

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-10

虽然很多开发团队都使用版本控制系统管理代码变更,但当多个开发人员并行地使用不同的代码库进行编码时,还是会出现问题的.在本期的 让开发自动化 中,自动化专家 Paul Duvall 展示了如何运用开源的、免费的 Subversion 版本控制系统来有效地进行标记、分支和合并.

说到源代码分支,可以将大多数的软件开发团队大致划分为两大阵营:有些是根本不分支;或存在大量的分支(甚至储存库),以致开发人员不知道从哪里签入变更 — 或者觉得合并变更很痛苦,于是就冒险将这项工作推迟到软件快要发布时才做.

永远只需要操作主干是最理想的情况.这使合并两个或多个代码支线间的变更没有那么复杂.然而,在现实的软件开发中,您正在开发的可能是未来版本,或者有时您可能需要为一个已经交付使用的版本准备一条后路.你需要有权限访问已发布版本的源代码副本 — 但又不能扰乱正在开发的新代码.

术语

主干(trunk)(有时称 head)用于干线开发(mainline development).分支(branch)是指一个代码支线副本,用于进行与干线开发不同的变更.标记(tag)(有时称 标签)是一个使用时间戳的代码支线副本,用于标识代码支线,以在开发周期中返回到标记的地方.

但当开发团队试图使用分开的代码支线时,问题就会出现了.有些时候,开发团队可能会选择不创建分支,免得会延误发布或导致开发人员瓶颈.而有些时候,开发人员合并的频率太低,结果导致了合并冲突、瓶颈以及发布延误.而增加分支则会使导航项目储存库很困难,从而导致开发人员无意中更改了不应该更改的代码.

团队进行并行开发时,一定要以最高的频率将代码合并回干线(即主干).如果无法经常将代码合并到主干的话,可以运行测试,这样就能够确定是否会发生合并冲突,从而使实施 合并没有那么困难.要有效地进行并行开发,您可以使用 Subversion(SVN)中的标记和分支,Subversion 是一个开源的、免费的源代码管理系统.通过标记,团队可以安全地返回到源代码的前一版本中.

我将通过介绍以下内容来示范如何在 SVN 中进行并行开发:

●如何从主干创建一个 SVN 版本标记
●根据版本标记来创建一个 SVN 分支
●将变更合并回干线(即主干)的技巧
●如何在开发中的主干运行持续集成(Continuous Integration,CI),以定期测试分支与主干的合并
●演示如何将源于分支的变更应用到主干
●举例说明如何标记分支的源代码

关于本系列

作为开发人员,我们致力于自动化用户流程;但许多开发人员却疏忽了自动化自己的开发流程.为此,我们编写了 让开发自动化 系列文章,专门探讨软件开发流程自动化的实际应用,为您介绍何时 以及如何 成功应用自动化.

图 1. 并行开发

典型的并行开发时间线

在图 1 中,有效的开发发生在 SVN 主干的版本 1.0.0 和版本 1.1.0 之间.可以是一组开发人员在版本 1.0.1 分支上进行开发,而其他人员在干线上开发.

如果想要多个开发人员负责不同的代码支线的话,可以使用很多策略和技巧.在本文中,我将展示一个很常用的方法,我曾在使用 SVN 的项目上用过它.

为并行开发配置 Subversion

安装和配置 SVN 服务器并不在本文的讨论范围之内.如果您有权限访问一个有效的 SVN 服务器,就可以执行以下的步骤了:

1.将 SVN 客户机软件下载到您的工作站.
2.在工作站中创建一个标准本地目录.
3.将目录添加到 SVN 储存库.
4.将目录提交到 SVN 储存库.
从 Tigris.org Web 站点(参见 参考资料)为您的操作系统下载 SVN 客户机软件,并将其安装到您的工作站.确保 SVN 可执行文件在您的工作站的系统目录中.用 svn co URL 执行储存库的 SVN 签出.

接下来,创建三个本地目录:

分支:用于维护干线开发之外的软件.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号