CodeBeamer+SubVersion實務操作手冊
Version 95   (Apr 30 2008 16:15 by jeffery) | 35 comments and attachments   (Apr 30 2008 17:41 by jeffery) | No child pages
PropertiesShow Parent
Tags:   CodeBeamer入門文件; SubVersion All Tags...

CodeBeamer+SubVersion實務操作手冊

1.CodeBeamer/SubVersion 整合簡介

SubVersion註1為一個獨立的SCM 軟體, 其實可以獨立運作於CodeBeamer軟體之外, 但是SubVersion僅專注在檔案的版本控管, 但是其它如SubVersion 檔案庫(Repository)的建立,使用者管理, 檔案庫權限設定等, 這些宛如黑箱作業的設定必需透過Server 端的終端介面(Terminal) 用 console command line一一去建立, 為了快速讓使用者體會CodeBeamer+SubVersion的功能,INTLAND特地於CodeBeamer的安裝程式加入SubVersion安裝, 並於CodeBeamer啟動時將SubVersion啟動並於每個CodeBeamer專案中可透過Web介面建立SubVersion Repository以快速讓使用者進入評估與使用階段, 可省去不少SubVersion安裝與設定的時間, 本文件僅適合評估階段, 如果要實際導入專案中運用, 建議使用者將CodeBeamer與SubVersion各別安裝於獨立Server,以下操作SubVersion Client端程式使用TortoiseSVN註2

2.CodeBeamer/SubVersion 操作流程

所以本節主要利用CodeBeamer的操作介面來起始一個SubVersion的檔案庫, 增加使用者與設定權限, 並以Step By Step 方式操作流程如下

2.1建立CodeBeamer 專案並建立SubVersion 檔案庫

  • 請先建立一個CodeBeamer專案名為SVN Evaulation, 再到專案的Admin的SCM Setting來設定SubVersion Repository,如下圖所示
  • 選擇Set做下一步設定,如下圖
  • 選擇Create New Managed Repository後再按Next以建立SubVersion Repository如下圖示, Use Existing External Repository為CodeBeamer要與獨立的SubVersion Server連接設定
  • 輸入svnevaulation當做repository name , 再按Finish即完成SVN Repository的建立,CodeBeamer會在已建立的Repository新增3個目錄如下
    • branches: 分支的管理
    • tags:標籤管理
    • trunk:主開發線
可點選專案的SCM Repository再到Actions選Browse Repository看CodeBeamer幫你建立好的目錄結構,如下圖

2.2設定專案成員角色(Role)與SCM權限

  • 設定專案成員角色(Role)的Repository目錄Read/Write權限
CodeBeamer支援完整SubVersion ACL 功能, 透過Web介面設定目錄權限可省下不少維護ACL的時間,以下為設定方式
  • 點選SCM Repository中的Browse Repository , 如下圖示
  • 點選Browse Repository後, CB 會先出現Repository 的根目錄, 在每個CB顯示的目錄都會有一個Permission的button,點選Permission代表要設定目前顯示目錄的Read/Write權限, 如下圖示
  • 在Permission 設定畫面, 以專案角色(Role)來設定Repository目錄的Read/Write權限, 如下圖示,您的CodeBeamer畫面也許與下圖不一樣, 有些Role沒有出現, 那些沒有出現的Role 是因為在Role的SCM-View沒有被Enable

2.3專案成員使用TortoiseSVN 簽出檔案庫

剛才建立的Repository名為svnevaulation所以在Checkout的URL設為svn://localhost/svnevaultation/trunk, 表示要將trunk目錄checkout到工作目錄,在此是使用localhost為範例,您可以將localhost換成你的CB IP位址或是domain name.

選舉OK後, TortoiseSVN會出現如下圖的登入畫面,使用剛才加入測試專案的專案成員的帳號與密碼,即可完成checkout

由於是第一次checkout所以看到的workspace應該如下圖沒有任何目錄與檔案

3.利用CodeBeamer的Tracker 與 SCMLoop功能來稽核每一個指派工作所產出的建構管理項目, 例如建立目錄,新增/刪除/修改需求管理文件系統分析文件, Source Code等等,以下以新增目錄與檔案為例

3.1使用CodeBeamer建立Task並Assign給專案成員

  • 在以下圖示中,新增一個Task assign給Andy, Andy在新增目錄時check in 到SVN repository時,可以將新增目錄的check in 與這個Task關聯

3.2在工作複本中新增檔案並用TortoiseSVN將新增的檔案納管到檔案庫, 並將納管項目與指定的工作關聯


check in成功後,再回到工作列表(再refresh 工作列表頁面)可以看到Task多出一個SCM的Icon,如下圖示,表示check in有與工作關聯在一起了

點選Task再點選SCM Commits可以看到更詳細的內容,如下圖示

3.3在工作複本中新增目錄並用TortoiseSVN將新增的目錄納管到檔案庫, 並將納管項目與指定的工作關聯

與3.2操作方法一樣

4.如何利用Tracker來管理Repository 的Branch

通常以下幾種狀況會需要做Branch
  • 同一個軟體產品線但是必需針對不同的客戶做客制化
  • 需要修改軟體的核心演算法, 但是目前的軟體還必須繼續為目前的客戶做維護
  • 軟體還再繼續增加功能, 但是之前Release 的穩定版本客戶有變更要求 SubVersion 有支援完善的Branch功能, 但是並沒有Tracking 紀錄的功能, 也就是當軟體的Branch日益增多, 這些Branch 是何時? 何種目的? 誰? 所產生的
當在Working 這個Branch時是否有留下良好的記錄以為將來做Merge時減輕Merge 的工作Loading , 以下將介紹如何利用CodeBeamer 的 Tracker 功能來為SubVersion 的 Branch 做一個良好的記錄與追蹤

4.1新增一個Tracker名為Branch Management

4.2新增一個branch task

可在此branch task紀錄branch的目的

4.3使用TortoiseSVN製作branch

製作Branch Check in 時與branch task關聯如下圖示

5.如何利用CodeBeamer的Tracke, Report功能與SubVersion 的 TAG 功能來做Release 的管理

SubVersion 的TAG功能通常運用在軟體的Relase , 無論是Release到QA或是客戶, 但是在Release 過程中, 並不是用SubVersion做一個TAG就可以直接打包(Build)就release 的, 也許客戶希望這個Release版本解決那些Bug, 增加那些功能, 所以製做Report 也是必需的流程, 以下會介紹利用CodeBeamer與 SubVersion來示範一個Release 的流程
  • 先使用Add New Tracker 新增一個Tracker名為Release Management如下圖示
  • 再到Documents建立一個Releases目錄做為要放置每次release的檔案,如下圖示

5.1新增一個release task

5.2製作release report 並與release task關聯

製作Report可參考User GuideChapter 3

回到v1.0 release task , 點選v1.0 release task利用Add Association將製作好的Release Report 關聯起來如下圖示

5.3製做Repository TAG,並與release task 關聯

5.4將TAG的source code build 成installer,上傳到Documents的Releases目錄, 並與release task關聯


回到v1.0 release task , 點選v1.0 release task利用Add Association將Release的檔案 關聯起來如下圖示

5.5將release task re-assign給測試工程師做Testing

當被Assign的測試工程師可以看到Release Report, Release 檔案, Tag History, 如下圖示,可以省去測試工程師詢問RD工程師要先測試那些Function的溝通時間, 當測試工程師發現問題時, 也以release 版本為回報資訊, RD工程師可根據release版本到Release Management Tracker 查出對應的TAG, 再Check out 對應的TAG來duplicate測試工程師所回報的問題, 而不是以自己的working enviroment來duplicate問題.