敏捷軟件開發中,越小的反饋環,意味着軟件質量越容易獲得保證。python
做爲組件團隊,咱們的開發任務中,每每存在一些特性涉及到幾十個功能點,開發週期持續數週或數月的狀況。如何在開發過程當中保證軟件質量,是個很重要的話題。進行有效的細粒度的代碼評審,是常見的手段之一。可是這一但願在落地時,多多少少會遇到些來自方方面面的阻力:git
Review Board不支持Git branch的代碼評審提交;github
Git不熟,不知道怎麼生產正確的patch文件來提交到Review Board上;bash
Review Board不會用,不知道怎麼提交代碼評審;服務器
Review Board會用,可是提交過程繁瑣,一兩天就要提交一次,我怕麻煩;工具
我忘提交了代碼評審了post
團隊的痛點就是咱們努力改進的方向,咱們但願有一套方案,能實現代碼評審的自動提交,提交過程對開發人員透明,最大程度上減輕開發人員的心智負擔,讓開發人員專一於功能開發上。url
實際上,這個自動化工具和實現方案已經有了,這就是本文分享的RBTool。官網的用戶手冊有詳細的文檔說明,美中不足的是,沒有提供一個完整的實施案例給用戶參考,本文嘗試填補這一塊空白,疏漏之處,還望指正。spa
本文主要關注Review Board代碼評審自動提交的方案實施上,因此假設你已經有了一臺可用的Review Board(後文以RB簡稱)服務器。RB服務器的安裝、配置、使用不在贅述。日誌
部署環境:
alex@alex-desktop:~/git/team_dev$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 10.04.3 LTS Release: 10.04 Codename: lucid
安裝RBTool:
若是你的計算機能訪問外網,安裝過程很簡單:
sudo easy_install -U RBTools
若是不能訪問外網,須要手動下載以下安裝包,並依次解壓、運行 sudo python setup.py install 進行安裝。
https://pypi.python.org/packages/source/a/argparse/argparse-1.4.0.tar.gz
https://pypi.python.org/packages/source/s/six/six-1.8.0.tar.gz
https://pypi.python.org/packages/source/R/RBTools/RBTools-0.7.5.tar.gz
運行以下命令,查看是否安裝成功:
alex@alex-desktop:~/git/team_15000_dev$ rbt -v RBTools 0.7.5
配置git選項reviewboard.url爲你的RB服務器訪問連接:
git config --global reviewboard.url http://XXX.XXX.XXX.XXX/
在你的git工做區目錄下,建立RBTool的配置文件.reviewboardrc,示例以下(我的信息以XXX代替)
alex@alex-desktop:~/git/team_dev$ cat .reviewboardrc REPOSITORY = "XXX" REVIEWBOARD_URL = "http://XXX.XXX.XXX.XXX/" USERNAME = "XXX" PASSWORD = "XXX" TARGET_GROUPS = "CalabashBro" TRACKING_BRANCH = "origin/XXX"
Repository:指定RB服務器中已經配置的repository倉庫名;
REVIEWBOARD_URL:指定RB服務器訪問連接;
USERNAME:指定RB服務器的用戶登陸名;
PASSWORD:指定RB服務器的用戶登陸密碼;
TARGET_GROUPS:指定代碼評審Review request的Groups;
TRACKING_BRANCH:指定工做分支;若不指定,默認爲origin/master分支;(適用於Git)
配置Git commit鉤子腳本(如不須要自動提交代碼評審功能,此步能夠跳過):
alex@alex-desktop:~/git/team_dev/.git/hooks$ touch post-commit
alex@alex-desktop:~/git/team_dev/.git/hooks$ chmod +x post-commit
alex@alex-desktop:~/git/team_dev$ cat .git/hooks/post-commit
#!/bin/sh
rbt post -g -p
參數解釋:
-g:根據git commit日誌自動構造RB Review request的summary信息和description信息;
-p:自動構造和發佈;如未指定,會構造一個RB Review request頁面,但不會發布。
若是配置了Git commit鉤子腳本,commit代碼時,就會自動觸發提交一條RB Review request:
alex@alex-desktop:~/git/team_dev$ git commit -m 'Demo: auto to submit RB review request' Review request #6140 posted. http://10.46.74.230/r/6140/ http://10.46.74.230/r/6140/diff/ [gaoyun d461499] Demo: auto to submit RB review request 2 files changed, 6 insertions(+)
自動提交的RB Review request截圖:
若是沒有配置Git commit鉤子腳本,也能夠在commit後,利用rbt手動提交RB Review request,好比:
指定REVISION的修改記錄提交代碼評審:
rbt post REVISION
指定(STARTREV,STOPREV]區間的修改記錄提交代碼評審:
rbt post STARTREV STOPREV
把當前未push的修改更新到已提交的代碼評審請求中:
rbt post -r REVIEW_REQUEST_NUM
其餘命令請參照官網的用戶手冊。
祝玩的開心。
--EOF--