服务器 频道

解析IBM RTC在软件开发过程的应用实践

  3.2 使用RTC进行源代码管理和版本控制

  RTC另一项强大的功能就是支持源代码管理和版本控制,可以支持多人团队共同开发,能够确保更新被所有开发成员及时得知,并且可以预先侦测到潜在的代码冲突。

  我们从以下几个方面来介绍RTC的代码管理和版本控制功能。首先当我们要使用RTC管理Source Code时候,应明确如何将Source Code划分为不同的Component存放,并根据具体的开发,测试,构建需求划分Stream。在开发人员进行开发活动,并将自己的对当前代码的变更上传至服务器时,需要理解RTC进行代码变更的工作模式并正确操作。3.2.2节介绍了RTC代码管理的三重工作空间模式,3.2.3节则介绍了如何理解视图中变更集的标记意义并执行相应的操作。在这一小节最后将介绍RTC强大的代码历史记录功能:基线和快照,可以方便地对代码历史进行追溯和恢复。

  3.2.1 Stream 和 Component划分的策略

  Stream可以视作某个版本的代码集合,一般情况下,我们要为当前release建立一个主开发Stream。我们可以借助RTC的快照和Flow Target功能方便的复制一个stream的当前状态成为另一个Stream,使其成为主开发team的一个分支。出于对构建(Build)的需求,我们还可以建立一个集成stream,用来将开发stream中的内容作一些整合,用来进行构建。

  Component是某一个功能模块的代码集合,可以根据功能模块对代码进行component划分。例如名为Install的Component包含了安装模块,名为Interface的component包含了界面设计模块等等。来自第三方的open source code以及核心的Jewel Code应该分别单独用Component存放,以确保代码来源清晰并且受到保护。可以为Component指定Owner(Owner可以是个人,团队或者整个项目区域),严格控制Component内容的读写权限。

  当代码按我们划分好的stream和component存放于RTC的工作空间时,我们就可以在RTC的代码管理和版本控制功能支持下进行协作式的代码开发活动了。下面将介绍RTC代码管理的三重工作空间模式。

  3.2.2 三重工作空间的工作模式

  RTC的代码存在于三重相互关联的工作空间,如图所示:

 


▲图12.RTC的三重工作空间(Source Code Management)

  Stream:位于server端,是代码的交付目标,对具有权限的开发人员可见

  Repository Workspace:位于server端,可以视作stream的个人镜像

  Local Workspace:本地工作空间,位于本地,与server端的Repository相关联

  开发人员无论是接受来自stream的变更还是向Stream交付本地发生的变更,都要通过中间层Repository Workspace,这样做的好处是当开发人员修改了同一个文件时,可以在Repository Workspace提前发现冲突,避免都向Stream中提交变更时产生严重的冲突造成变更丢失或者代码混乱。

  开发人员的开发活动主要位于本地的工作空间,当有其他开发人员向Stream交付了新的变更,这个变更将显示在个人的Repository Workspace 中,由开发人员自己决定是否接受这些变更,并下载到本地。

  当开发人员在本地工作空间进行软件开发活动,使得本地的workspace发生了变更,可以进行check-in操作向Repository Workspace check in发生的变更。再由Repository Workspace向Stream进行deliver操作完成变更的最终交付。

  以下步骤图描述了RTC中的版本控制流程

  步骤1:

  Developer 甲: Local 修改 -> Check-In -> Deliver to Stream

  步骤2:

  Developer 乙:Accept(Developer 甲的修改)from Steam-> Load 到 Local

 


▲图13.RTC的版本控制流程

2
相关文章