在上一篇(何爲Pull Request並且如何建立 - 以Azure DevOps爲例)介紹了如何透過建立branch來把修改獨立出來,並且在修改完成之後透過建立Pull Request的方式建立出可以Code Review的一個請求。
這一篇將來看看Azure DevOps裡面的Pull Request包含了那些功能。
Pull Request的基本功能以及4個tab功能介紹
在進入任何一個Pull Request的時候,在上半段是幾個和這個Pull Request有關的重要訊息以及操作:
- 可以看到是那個branch要merge到哪一個 - 這邊如果設定錯誤可以做一些調整
- 這邊可以看到所有comment的狀態 - 第一個數字代表多少個已經處於close狀態,後面的數字則是總共有幾個comment
- approve 按鈕 - 如果reviewer覺得沒有問題,那麽就可以按下Approve代表通過。在按鈕旁邊的下拉還有幾種不同的決定可以選擇
- complete 按鈕 - 決定要merge。按鈕旁邊的下拉還有其他選項,包含把這個Pull Request直接拒絕掉。
approve以及complete的差異
approve代表這個reviewer對於這個pull request的態度。
不過,取決於各個公司訂立的規則,很有可能需要至少幾個reviewer確認過,才能夠把他merge回去。換句話説,才能夠選擇complete按鈕。
在往下看,會看到總共有4個tab分別為:
- Overview
- Files
- Updates
- Commits
Overview
這一個tab包含了這個Pull Request的整個Overview訊息。
總共有幾個部分:
- Description:顯示當初建立這個Pull Request的人所寫的詳細描述
- comment:不管是透過這邊直接留下的comment或者因爲選擇某一段程式碼所作出的comment都會在這邊一個一個呈現
- Work Items:如果有使用Azure DevOps的issue tracking,那麽這邊是可以直接看到原始需求方便參照
- Reviewers:有指派那幾個人要做Review的動作
- Labels:可以針對這個Pull Request下label - 類似於一個summary概念。例如可以下一個
WIP
代表這個Pull Request還在Work In Progress因此先不要merge。
Reviewer一般來説,用到最多是第2點,有任何建議或者意見直接寫成comment,能夠給coder一些建議。
如果有針對某一個程式碼片段做comment,也會在這邊出現。
因此,這一頁是overview,能夠看到所有的reviewer comment。
Files
Files這個tab就是透過看有被修改的檔案以及每一個片段。
這一個tab有幾個部分:
- Updates - 這個等一下會更詳細介紹,但是基本上每一次push就是1次update - 因此如果有review過了,但是coder有更新,那麽可以切換這個filter只看某一個update - 換句話説之前看過的就不用看了
- 顯示那些Comment - 因爲可以針對某一個程式碼片段寫comment,透過這個可以控制那些comment要出現在檔案清單,以及在看每個檔案修改的時候要展開這個comment
- 修改檔案清單 - 這邊會列出有被修改的檔案,如果要只看某一個檔案的修改,可以點那個檔案,右邊就只會呈現那個檔案的修改。
- 差異比對 - 這個畫面可以看到差異比對,左邊是修改前,右邊是修改後 - 和一般的diff viewer沒什麽兩樣。
Updates
Updates這個概念很有意思,一般來説當coder在開發的時候,可能會有很多commit,但是都是到了一個段落之後,會做一次push。
或者說,只有當做好了才會push。
因此,理論上,每一次的push,都代表著一個更新。
Updates就是要用來呈現這個訊息的功能,所以每一次push就會是一次更新。
這個Tab能夠看到總共有幾次updates (換句話説幾個push),然後每一個push包含了什麽commit
有update這個概念非常好,因爲:假設有review過了,其實我只會對新的code要再次review而已,這個時候就可以靠update。
Updates這個Tab比較少直接看 - 不過不同的地方都可以看到這個功能的影子,舉例來説,Files
裡面就可以切換呈現只看那個update,或者在Overview在看某一段程式碼comment的時候也會用到。
Commits
這個tab顧名思義,就是把所有的commit列出來。
這個tab用的情景還蠻低,因爲一般來説除非前面的訊息不夠,才會來看這個部分。
結語
這一篇把Azure DevOps裡面對某一個pull request要做操作的畫面整個介紹了一遍。
相信有了這一篇對於Azure DevOps Pull Request有什麽功能應該有比較詳細的概念。
不過實際上會如何使用呢?下一篇([04]整合的威力 - 整個Review的過程),從使用的角度,來實際看看,如果run一個pull request的code review是什麽感覺。