1. CodeBeamer/Mercurial整合介绍
版本控制软件(VCS)的Repository(档案库), 在以往都是集中在Server端管理, 这方面的OpenSource代表软件有CVS和SubVersion, 但随着软件版本的变更快速,集中式的Repository其branch管理不易, 在OpenSource的社群, 分布式的版本控制软件(DVCS)逐渐广为opensource项目所使用. 而目前在opensource最热门的分布式版本控制软件则当属Mercurial与Git , 这两个分布式软件各有其支持者, 例如著名的FireFox浏览器, 其项目采用Mercurial, Linux Kernel则采用Git.
分布式版本控制软件, 理论上是可以不用一台专职的Server来执行分布式版本控制软件, 因为每个使用者端就是一台完整的VCS Server, 当要与项目成员的code做整合的时候, 再利用push变更的code与其它团队成员的repository. 所以source code的变更是不用透过集中式的Server来做merge的.
由于DVCS的特性, 每一个团队成员都是一台独立的VCS Server, 但是软件还是有所谓的Baseline或是Release tag, 为了解决这个问题, 还是要有一台VCS来统合团队成员的所有source code版本变更. CodeBeamer整合了Mercurial即可以扮演这个角色. CodeBeamer+Mercurial的整合有以下好处
- 利用CodeBeamer的Managed Mercurial Repository来管理稳定的source code版本.虽然团队成员有各自修改的branch, 但最终还是要push到CodeBeamer的Managed Repository
- CodeBeamer的Managed Repository方便建立与维护, 例如
- Repository可透过CodeBeamer Web接口来建立
- 使用者账号管理
- E-Mail通知管理
- Source code change set与Issue的整合
- Baseline/Release tag与source code的关联容易.
2. Mercurial在Server端的安装与Apache设定
CodeBeamer从5.3版后才开始支持Managed Mercurial Repository/Mercurial external repository
3. 使用者端软件安装
- 使用者端OS为Windows
- 使用者端OS为Mac
- 使用者端OS为Linux
- 与软件开发工具IDE的整
4. CodeBeamer/Mercurial操作流程
4.1 建立CodeBeamer项目
• 新增项目
• 输入项目名称与项目信息
选择Finish就可以完成项目建立, 在输入项目信息的接口, 可以看到Source Code, 选择Source Code就可以顺便设定这个项目的SCM设定, 但是本例是先建立项目, 再设定SCM
4.2 设定项目的SCM的连结
• 到Admin中选SCM, 然后选Mercurial
• 选择Creat New Managed Repository
• 输入Repository名称
• 选择Finish后, CodeBeamer会开始建立与初始化Repository
• CodeBeamer建立好Repository后, 会发E-Mail通知
4.3 将使用者/开发者端新建一个Mercurial Repository
以下Mercurial的操作是使用TortoiseHg为范例
• 到Golbal Settings设定Commit使用者名称
• 输入Username , 也就是你的codebeamer账号名称
• 在一个新增的目录建立一个Repository
• 选择Create
• Repository建立完成
• Repository建立好后, 在目录中会看到.hg目录与.hgignore档案
4.4 将Source Code项目新增到建立好的Mercurial Repository
• 将source code放到刚新增Repository的目录
• 点选source code的目录再用鼠标右键点选HG commit
• 跟CVS/Subversion操作一样, 新增的目录或是档案要commit到Repository前要先执行Add, 点选要新增的档案后按Add
• 执行Commit, 并输入commit的信息
4.5 将使用者/开发者端的Repository push到CodeBeamer的Managed Mercurial Repository
要将使用者端的Repository Push到CodeBeamer的Managed Mercurial Repository前, 要确认使用者在CodeBeamer的项目角色有SCM commit权限
• 在Repository目录, 点选鼠标右键, 然后从TortoiseHg选单选Synchronize,
• 输入CodeBeamer的Managed Mercurial Repository URL 例如http://ipaddress/hg/myfirsthg myfirsthg是透过CodeBeamer建立的Repository名称, 输入好后按PUSH
• 输入CodeBeamer登入账号与密码
• Push成功后, TortoiseHg的显示讯息
• 到Codebeamer项目的Repository检视Push的log记录
5. 将commit changeset 与CodeBeamer的Issue关连
假设在CodeBeamer项目中的Task Tracker, 使用者被项目经理指定要处理一个工作, 这个工作需要修改Repository中的档案, 为了让项目经理审核负责这件工程师的产出, CodeBeamer支持了SCMLoop的功能, 让使用者在push changeset时可以将changeset与Task/Issue关连起来. 以下是操作说明
• 假设使用者jeffery被指派了一份工作
• jeffery修改了他计算机中的档案
• jeffery先将修改后的档案commit到自己的repository, 并在commit讯息中加上工作的代号(ID)
• jeffery修改好了, 于是将自己的repository push到CodeBeamer Server中的Managed Mercurial Repository
• Push成功后, 关连也产生了