一个人-我的学习随笔

有时候对待技术就好像对待女人,我们通常在已经了解或者相信她有着诱人的身体的时候,才会乐于或者有耐心对待脱衣的前戏。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

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

  • Windows平台安装
  • Linux平台安装

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 
SCM选用Mercurial 
•    选择Creat New Managed Repository 
Create New Managed Repository 
•    输入Repository名称 
输入Repository名称 
•    选择Finish后, CodeBeamer会开始建立与初始化Repository 
初始化Repository 
•    CodeBeamer建立好Repository后, 会发E-Mail通知 
synchronize 
4.3 将使用者/开发者端新建一个Mercurial Repository

以下Mercurial的操作是使用TortoiseHg为范例
•    到Golbal Settings设定Commit使用者名称 
设定commit user name 
•    输入Username , 也就是你的codebeamer账号名称 
输入Username 
•    在一个新增的目录建立一个Repository 
于一新增目录建立一Repository 
•    选择Create 
 
•    Repository建立完成 
new repository created 
•    Repository建立好后, 在目录中会看到.hg目录与.hgignore档案 
repository建好后, 看到.hg目录与hgignore档案 

4.4 将Source Code项目新增到建立好的Mercurial Repository

•    将source code放到刚新增Repository的目录 
source coe放入新增Repository目录 
•    点选source code的目录再用鼠标右键点选HG commit 
commit 
•    跟CVS/Subversion操作一样, 新增的目录或是档案要commit到Repository前要先执行Add, 点选要新增的档案后按Add 
Add 
•    执行Commit, 并输入commit的信息 
Commit 

4.5 将使用者/开发者端的Repository push到CodeBeamer的Managed Mercurial Repository

要将使用者端的Repository Push到CodeBeamer的Managed Mercurial Repository前, 要确认使用者在CodeBeamer的项目角色有SCM commit权限
•    在Repository目录, 点选鼠标右键, 然后从TortoiseHg选单选Synchronize, 
synchronize 
•    输入CodeBeamer的Managed Mercurial Repository URL 例如http://ipaddress/hg/myfirsthg myfirsthg是透过CodeBeamer建立的Repository名称, 输入好后按PUSH 
push 
•    输入CodeBeamer登入账号与密码

输入帐号 
输入帐好与密码 
•    Push成功后, TortoiseHg的显示讯息 
Push成功后的画面 
•    到Codebeamer项目的Repository检视Push的log记录 
commit log 

5. 将commit changeset 与CodeBeamer的Issue关连 

假设在CodeBeamer项目中的Task Tracker, 使用者被项目经理指定要处理一个工作, 这个工作需要修改Repository中的档案, 为了让项目经理审核负责这件工程师的产出, CodeBeamer支持了SCMLoop的功能, 让使用者在push changeset时可以将changeset与Task/Issue关连起来. 以下是操作说明
•    假设使用者jeffery被指派了一份工作 
Assign Job 
•    jeffery修改了他计算机中的档案 
modify 
•    jeffery先将修改后的档案commit到自己的repository, 并在commit讯息中加上工作的代号(ID) 
commit to repository 
•    jeffery修改好了, 于是将自己的repository push到CodeBeamer Server中的Managed Mercurial Repository 
push 
•    Push成功后, 关连也产生了 
产生关连

转自 http://hi.baidu.com/limp_t/blog/item/46a396ce665cd433b600c887.html

posted on 2010-06-17 16:54  oisiv  阅读(1157)  评论(0编辑  收藏  举报