Phabricator review code應用

Review code 前置設定

在 Config > Diffusion 設定

diffusion.ssh-port	"your ssh port"
diffusion.ssh-user	"your username"

或是 command line 執行

cd /path/to/phabricator
./bin/config set diffusion.ssh-user "your username"

在 Config > Daemon > sphd.user 設定

phd.user	"your username"

或是 command line 執行

./bin/config set phd.user "your username"

要注意的就是 Config > Conduit > conduit.servers 是否有設定,我是預設留空的。

Create Repository

因為有新版的 Repository 設定,所以舊版的已經不適用,新版的設定中有更清楚的設置流程了。

按下 Create Repository 開始建立需要 Review 的版本庫。

  1. Repository Type 選擇使用的版本控制系統。

  2. Repository Name and Location 輸入人類看的懂的標題,以及版本控制 Callsign ,官網的範例是取專案第一個字母,必須要為大寫。譬如專案名字是 TestCallsign 就是 T

  3. Policies 選擇可以控制這個版本庫的群組、會員。

  4. Repository Ready! 開始建立新的版本庫,或是略過直接到設定檔設定。

我都是到第四步之後直接選 Configure More Options First

這邊有兩種方式,可以提供 review 的服務,一是用 Phabricator 自帶的 Host Repository on Phabricator,可以參考官網設定,這個服務是方便自動 merge,push。但是當我完成官網上的設定後,提交 review code 的請求在驗證 ssh 會出問題,導致一直無法自動 push,無法收到需要 review 的請求,所以後來放棄,改用 Host Repository Elsewhere

Host Repository Elsewhere 的設定都完成了,接著設定 Remote ,Remote URI 選擇版本庫位置,當然也可以用 Github 上的,Credential 則是看使用的是哪一種方式,若是用 git@ 那就必須要增加 private key,若是用 http 那就必須要增加 password 的驗證方式。

Local 則是放置 repo 的地方,Branches 選擇預設 track 的分支、或是只 track 哪一個分支,最後是 Autoclose Only,這個設定要相當小心,因為當提交 Review 通過後,會自動關閉分支。可在 Actions 中關閉。

這些設定都完成後就可以啟動 Daemons, 因為這很常使用所以我寫了一隻 shell script 放在 .bashrc

~/.bashrc

這樣就可以用 phb start 啟動了。

設置 Arcanist

在官網的設置教學很簡單易懂,安裝完也必須設定變數:

在 Linux 上需要設定 EDITORarcanist 的路徑環境變數。

~/.bashrc

就會在 .gitconfig 產生

接下來就可以開始提交 review 請求

提交程式碼

在這邊記錄以 Linux 的方式提交,試著執行 arc

若出現這個錯誤訊息,表示 arc 已經設定成功。

檢查當前檔案狀態

把 alan_test.txt 提交 review,從原本的 git add 改執行 arc diff

會發生錯誤是因為尚未設定 certificate 系統通知該做什麼設定。

打開瀏覽器訪問 http://phabricator.example.tw/conduit/token/,並且登入要連結 Phabricator 上的 user。

arc-certificate

取得 Token,並且輸入上一步驟的設定。

設定成功,打開 .arcrc 就會發現設定是 Phabricator 的 user。

再次執行提交

接下來會跳轉到輸入詳細的資訊

:wq 儲存後離開會開始提交

這邊個資訊是在告知提交的資訊中沒有交代要 test,及 review 版號是 D21 包含改變的檔案清單,這樣就完成了 client 的提交。因為在 Reviewers: 填寫的是 webuser,所以他會收到通知。

arc-notify

接下來就可以看到詳細的資料,alan 改變了檔案提交了程式碼,webuser 需要透過介面完成審核。

arc-review
arc-accpet

當 webuser 完成了審核,同意了。alan 也會收到通過的通知。

arc-review-ok

alan 也可以看到詳細的資訊。

arc-review-ok-info

這時候就可以把改變的檔案 push 上版本庫,若是按正常流程要 git add, git commit,但是在這邊只需要執行

或是

amend 是提交全部已經通過審核的版本,而 land 則可以單獨指定,

系統通知完成 D21 的提交,並且要自己執行 git push

若是沒在網站介面審核通過就直接執行 arc diff 會有提示訊息出縣,要求先通過審核。

這樣就完成囉!! 回到網站介面可以發現,版本庫中已經完成一次提交。

arc-down

Jan 23rd, 2014 2:01:00pm

Last updated

Was this helpful?