天天看點

ReivewBoard+Perforce代碼評審平台搭建1. Review Board簡介2. 伺服器安裝3. 建站4. RB中添加Repository5. 如何釋出一個Review Request6. 關于和P4V的內建 7 總結

代碼評審(Code Review)是靈活開發很重要的一環,是保證軟體品質的最佳實踐之一。要做好Code Review, 就需要有一套簡單,高效,功能完善且界面友好的工具鍊支援。

我所在的團隊原來一直使用Code Striker做為Code Reivew的平台,但其對Perforce支援的不好,且界面不很友好,給我們帶來不少麻煩,使用效果也打了折扣。從去年底,我們開始使用功能和界面都全面增強的Review Board,同時再加上少量的工具配置,就可以實作非常高效的Code Review平台。我剛剛完成伺服器的遷移,是以寫些心得,一來做為日後參考,二來也和各位朋友分享。

1. Review Board簡介

Review Board(簡稱RB)是基于Django的網絡應用,界面非常友好,功能也非常強大,包含一套完整的Review流程,支援現在幾種流行的SCM工具和資料庫。最感謝它網站FAQ裡的一句,”Review Board is absolutely free for commercial use!“。它的開發人員來自大名鼎鼎的VMWare,其mail-list非常活躍,老大Christian Hammond([email protected] )也非常樂于助人。

ReivewBoard+Perforce代碼評審平台搭建1. Review Board簡介2. 伺服器安裝3. 建站4. RB中添加Repository5. 如何釋出一個Review Request6. 關于和P4V的內建 7 總結

2. 伺服器安裝

RB可以安裝在多種平台。本文是在WinXP SP3上安裝, 其他平台請參考網站上其他文檔。

請先安裝Python 2.5和Apache Http Server 2.2。他們的安裝略去不表,但請保證“C:/Python25;C:/Python25/Scripts”在你的環境變量裡 。其他軟體(針對Python2.5)我已上傳到http://download.csdn.net/source/2403641。

0)安裝和Python相關的一些東東

在軟體包中,請安裝mod_python, PIL,setuptools。這幾個都是輕按兩下之後,一路NEXT即可。

1)安裝memcached for windows(在軟體包中)

先使用指令行memcached.exe -d install

安裝服務,再去WinXP服務管理界面啟動該服務。

然後用指令行

easy_install python-memcached      

安裝python-memcached. (NOTE: 最近發現easy_install也被牆了,是以用easy_install時可能有點問題。如果是那樣,請找個代理,然後設定HTTP_PROXY環境變量翻牆)。

2)安裝資料庫SQLITE(在軟體包中)

軟體包中是SQLITE,但RB還支援其他資料庫。請到它家的網站找,安裝也不困難。

SQLITE的安裝很簡單,隻需把它的EXE放到PATH中某個路徑即可。你可以直接扔到C:/Windows/system32下。呵呵。

然後再用 easy_install pysqlite, 安裝相對應的python module.

3)安裝GNU patch(在軟體包中)

它的安裝也是一路NEXT。安裝完成之後,把它EXE所在的路徑放到PATH裡。

4)安裝p4python25(在軟體包中)

一路NEXT!如果你不是在使用p4,請去RB網站看其他SCM的安裝方法。

5)安裝RB

RB團隊已經把它放到easy_install的源裡了,是以可以用 easy_install ReviewBoard 安裝,很友善吧。

好了,該裝的都OK,下一站就是建站。

3. 建站

RB建站很簡單,在指令行中打一句指令

rb-site install "站名"

之後,它會問你一會問題,比如用什麼資料庫,什麼Http Server, 請按之前的安裝回答。還會讓你輸入管理者密碼之類的。


指令完成之後,會在目前工作路徑下成一個的站名一樣的目錄。請到裡面找到conf/apache-modpython.txt,這裡面是一段apache server配置的片斷,


請把這片斷複制到真正的httpd.conf裡。



      

4. RB中添加Repository

在建站完成後,你應該可以通路到RBweb頁面。

ReivewBoard+Perforce代碼評審平台搭建1. Review Board簡介2. 伺服器安裝3. 建站4. RB中添加Repository5. 如何釋出一個Review Request6. 關于和P4V的內建 7 總結

添加Repository, 需要用admin使用者。這裡就說說Perforce的配置吧。

首先有你在建站時用的admin使用者登入,然後就會進入到Admin的頁面(最上面有一個Admin的連結)。

ReivewBoard+Perforce代碼評審平台搭建1. Review Board簡介2. 伺服器安裝3. 建站4. RB中添加Repository5. 如何釋出一個Review Request6. 關于和P4V的內建 7 總結
點選Repositories進入到SCM的配置頁面。然後“Add Repository", 輸入Perforce的相關參數。
ReivewBoard+Perforce代碼評審平台搭建1. Review Board簡介2. 伺服器安裝3. 建站4. RB中添加Repository5. 如何釋出一個Review Request6. 關于和P4V的內建 7 總結
儲存之後,Perforce就配置完成了。 RB的Admin頁面做得非常友好,其他方面的配置,比如Email,站點資訊之類的,我這裡就不羅嗦了。大家點點就知道了!

5. 如何釋出一個Review Request

關于這個問題,RB提供了一個好用的工具叫post-review。 對于使用Perforce的團隊來說,這個工具更是極其好用。隻要用這個post-review加上checklist-id就OK了。

下面讓我們來配置一下這個工具(有些是專門針對Perforce的配置):

1) 保證在"cmd"下,p4指令是可用的。

2) 保證P4的幾個相關環境變量設定了(P4USER, P4PASSWD, P4CLIENT, P4PORT )

3) 用”easy_install -U RBTools“ 安裝post-review工具

4) 修改post-review的相關腳本(主要是我開始是配置在老版本的RB上,新的還不太知道能不能用,但我的一定可用。:) 大家到這個地方去下載下傳http://download.csdn.net/source/2856000。) 修改分三步,第一,到C:/Python25/Scripts,删掉post-review.py, post-review.bat, post-review.exe; 第二,拷貝壓縮包裡的檔案到C:/Python25/Scripts); 第三,打開post-review.py, 然後修改REVIEWBOARD_URL 那一行,用真實的URL替換。

5) 安裝GNUDiff,這是用來生成diff檔案的時候用的。别忘了,把diff加到PATH裡,一般是這個路徑"C:/Program files/GnuWin32/bin"。

好了,都配好了,下面讓我們來post review吧。

1) 在你建的RB上,注冊一個新賬号;

2) 打開cmd, 用指令"post-review PendingChangelistId -o "

3) 第一次用這個指令,它會讓你輸入username和passwd,以後就不會了。

4) 上傳DIFF之後,它會用預設的浏覽器打開網頁, 顯示你剛上傳的Request, 這時它處于draft狀态。

5) 加上一些必要的資訊, 比如誰來review之類的,然後就Pulish吧!

6. 關于和P4V的內建

使用其它SCM的這一段就不用讀了。


P4V是一個非常好用的工用,它也非常容易和post-review內建,那就是使用external tools. 步驟如下:



1) 打開P4V

2) 選擇menu Tools->Manage Custom Tools... 打開視窗


        
ReivewBoard+Perforce代碼評審平台搭建1. Review Board簡介2. 伺服器安裝3. 建站4. RB中添加Repository5. 如何釋出一個Review Request6. 關于和P4V的內建 7 總結
3) New->Tool... and 打開視窗
ReivewBoard+Perforce代碼評審平台搭建1. Review Board簡介2. 伺服器安裝3. 建站4. RB中添加Repository5. 如何釋出一個Review Request6. 關于和P4V的內建 7 總結
4) 可以按如下填寫
ReivewBoard+Perforce代碼評審平台搭建1. Review Board簡介2. 伺服器安裝3. 建站4. RB中添加Repository5. 如何釋出一個Review Request6. 關于和P4V的內建 7 總結
如果用"%p -o" 打開浏覽器。 5) 然後在P4V裡就可以使用了,如下圖。
ReivewBoard+Perforce代碼評審平台搭建1. Review Board簡介2. 伺服器安裝3. 建站4. RB中添加Repository5. 如何釋出一個Review Request6. 關于和P4V的內建 7 總結
6) Post-review之後就可以在RB裡看到了。
ReivewBoard+Perforce代碼評審平台搭建1. Review Board簡介2. 伺服器安裝3. 建站4. RB中添加Repository5. 如何釋出一個Review Request6. 關于和P4V的內建 7 總結

7 總結

RB的基礎配置就這麼多,它的網站上還有更豐富的内容,包括其他代碼伺服器的配置,RB更新,搬移等等。總的來說都是非常容易的。

BTW,用Perforce的朋友在送出Request時,可能會遇到一些關于權限的問題。我猜和P4服務配置有關。我問過chipx86, 他說會fix。不過在最新1.5中還沒有改,是以我隻好還用我自己的hack過的檔案。如果有朋友遇到,可以告訴我,我會把檔案發給你。