1. 程式人生 > >RTC入門教程及衝突解決技巧

RTC入門教程及衝突解決技巧

1 RTC簡介

1.1 什麼是RTC

IBM Rational Team Concert,是Jazz家族中的一員。它是一個團隊合作軟體環境,能夠實現程式碼版本管理、專案進度管理及監督產品釋出等功能。在前期設計過程中,設定好迭代週期與checkpoint,利用workitem將不同模組關聯到開發人員,能夠方便快捷地進入開發;開發迭代中進度跟蹤和程式碼版本管理,能夠提高中小團隊間合作效率;最後能夠通過郵件等方式對專案進行審閱。

中文的官網,詳細資料自然還是需要翻閱官網。

2 入門使用

2.1 安裝

首先,需要有一個RTC的伺服器端,目前RTC有公開版本 Express-C,具體應用哪些版本視需求而定。

而客戶端,由於作者的開發都基於Eclipse,只安裝RTC的外掛即可,不需要下RTC的完整版:RTC-Client,安裝完的Eclipse可以在選單欄的File欄看到如下兩項:


2.2 基本功能

安裝完畢後需要選擇work Item檢視:

在這個檢視下能看到工作區和工作流:


點選齒輪按鈕,配置下伺服器端,並選擇專案所在的stream(後續詳解),即可以開始開發,開發過程中必要時利用這套工具進行協作即可。

該檢視的下方是控制埠,其中的history、pending changes、problems和team advisor都比較有用。其中歷史可以看到不同開發者關於一個檔案是如何改動的;pending changes後續介紹;problems顯示操作失敗原因,通常是由於程式碼有誤、未關聯work Item


主要的操作都在work item檢視下完成。

3 RTC程式碼控制結構

3.1 RTC的程式碼儲存

RTC的程式碼儲存是分成3部分的:Stream、Repository Workspace和Local Workspace。從下圖不好找,實際結構沒有圖示那麼混亂。


圖中需要操作的只是在source control處右擊,新建repository,並拉取程式碼即可。Stream:   儲存於伺服器,通常一個專案有一個Stream,Stream裡可以有不同的Component,比如測試人員可以位於Test Component,而不能得到Develop Component的東西;

Repository 

Workspace:同樣儲存於伺服器,但是屬於某一開發者的,是Stream的映象,一個開放人員可以有多個Repository,但通常本地的一個專案關聯到一個遠端的Repository

Local  Workspace:是開發人員的本地儲存目錄,並與Repository Workspace相關聯。

3.2 RTC的程式碼操作

RTC的程式碼操作分為3種:check-in,deliver和accept。


check-in:將Local程式碼的改動儲存到Repository ,通常可以不定時地check-in,以免忘記儲存,check-in實際上會in 到一個pending set,一個pending set即改動集合。在pending set上可以加comment,並關聯work Item。可以在上圖中右擊unsolved進行check-in,也可以在java EE檢視,或者其它專案所在檢視,右擊專案或檔案->team->check-in:


deliver:是將Repository 的改動提交到Stream,提交前必須accept所有的改動(如果存在)。

accept:接受別人的儲存(會提示有未check-in的改動,並詢問是否check-in)

3.3 RTC的專案程序管理

work ItemRTC的專案程序管理實際是利用sprint和work Item。最常用的是work Item,work Item本身只是人為設定的任務描述,與程式碼無關,並可以將任務分配給某個開發員,或者請某人跟蹤任務。

對於開發者來說,deliver之前關聯到自己的work Item即可:


點選即可加comment,右擊->related artifact->associate work item,輸入自己的work item號(不行就查詢,或者只加comment),即關聯到了自己的work Item。

4 衝突解決

4.1 程式碼同步原則

對於一個多人專案來講,解決衝突的首要原則是衝突預防。良好的設計,即合理的分工和低耦合的模組,能夠有效減少互相之間的依賴,進而減少衝突的發生。

其次,應該使每個開發者知曉ignore list,有一些檔案,如bin檔案,都應該是忽略的;並且也應知曉一些基本的架構,知道哪些檔案是不能更改的,哪些配置檔案改了不需要check-in。

最後,在保證程式碼能夠run的前提下,deliver程式碼的頻率需要快一些,如果實現了很多的功能再發布出去,很可能架構層面都有些許變動,並且不利於與其它開發者的互動。

4.2 衝突解決方法

通常,衝突發生時,需要發現衝突的人解決衝突。一般是在3.2圖中的pending changes裡雙擊衝突檔案,比對本地和遠端檔案差別,左側是自己程式碼可以改動,點選連線線中間可以用遠端覆蓋原生代碼:


如果衝突比較麻煩,可以檢視history選項卡(2.2圖3),根據不同開發者的改動選擇恢復到某個版本。

最後,比較粗糙的解決方法,discard一些本地的改變,再嘗試解決衝突。

5 一些材料