練習 Azure Repos 與提取要求共同作業
較快發現的程式碼問題的修正更為簡單也更便宜。 因此,開發小組致力於盡可能將程式碼品質檢查推送至開發程序。
顧名思義,分支原則會提供一組現成可用的原則,而這些原則可以套用至伺服器上的分支。
任何推送至伺服器分支的變更都需要先遵循這些原則,才能接受變更。
分支原則適合針對小組來強制執行程式碼品質和變更管理標準。 在此訣竅中,您將了解如何在主要分支上設定分支原則。
準備就緒
現成可用的分支原則包括數個原則,例如建置驗證以及強制執行合併策略。 我們只專注於在此訣竅中設定程式碼檢閱工作流程所需的分支原則。
如何執行此動作
在零件不受限小組入口網站中,開啟 myWebApp Git 存放庫的分支檢視。 選取主要分支,然後從下拉式捷徑功能表中選擇 [分支原則]:
在原則檢視中,會呈現現成可用的原則。 將檢閱者數目下限設定為 1:
[允許要求者核准自己的變更] 選項可讓提交者自行核准其變更。
雖然對於成熟的團隊來說,這也許可以接受,但一般而言,應該避免。
搭配使用檢閱原則與註解解析原則。 這可讓您強制先解析程式碼檢閱註解,再接受變更。 要求者可以從註解取得意見反應,並建立新的工作項目以及解決變更。 這至少保證程式碼檢閱註解不會因接受將程式碼放入主要分支而遺失:
需求會執行 Team 專案中的程式碼變更。 如果已觸發工作的工作項目未連結至變更,則很難了解經過一段時間還這樣的原因。 在檢閱變更歷程記錄時特別有用。 設定 [查看連結的工作項目] 原則,以封鎖沒有所連結工作項目的變更:
選取可在自動引發提取要求時自動包括檢閱者的選項。 您可以根據正在變更的程式碼區域,來對應所新增的檢閱者:
運作方式
備妥分支原則之後,主要分支現在已完全受到保護。
將變更推送至主要分支的唯一方法是先在另一個分支中進行變更,然後引發提取要求以觸發變更接受工作流程。
選擇從工作項目中樞的其中一個現有使用者劇本中建立新的分支。
從工作項目建立新的分支,該工作項目就會自動連結至分支。
您可以選擇性地在建立工作流程中包括多個具有分支的工作項目:
建立分支以建立要移入分支的資料夾時,名稱中的前置詞。
在上述範例中,分支將會移入資料夾。 這是在忙碌環境中組織分支的絕佳方式。
在入口網站中選取新建立的分支之後,編輯 HomeController.cs 檔案以包括下列程式碼片段,並將變更認可至分支。
在下圖中,您將會看到按一下 [認可] 按鈕以編輯檔案之後即可直接認可變更。
小組入口網站中的檔案路徑控制項支援搜尋。
開始輸入檔案路徑,以查看該目錄下 Git 存放庫中的所有檔案,這會從檔案路徑搜尋結果下拉式清單中顯示的這些字母開始。
入口網站中的程式碼編輯器具有 Azure DevOps Server 的數項新功能,例如支援括弧比對和切換空白字元。
您可以按命令選擇區,以將其載入。 除了許多其他新選項之外,您現在還可以使用檔案迷你對應、摺疊和展開以及其他標準作業來切換檔案。
若要將這些變更從新分支推送至主要分支,請從提取要求檢視中建立提取要求。
選取新的分支作為來源,並選取 main 作為目標分支。
新的提取要求表單支援 Markdown,因此您可以使用 Markdown 語法來新增描述。
描述視窗也支援 @ 提及項目和 # 以連結工作項目:
已建立提取要求;[概觀] 頁面會摘要說明原則的變更和狀態。
[檔案] 索引標籤會顯示變更清單,以及舊版與目前版本之間的差異。
任何推送至程式碼檔案的更新都會顯示在 [更新] 索引標籤中,所有認可的清單則會顯示在 [認可] 索引標籤下方:
開啟 [檔案] 索引標籤:此檢視支援程式行層級、檔案層級和整體的程式碼註解。
註解支援 @ (表示提及項目) 和 # 以連結工作項目,文字則支援 Markdown 語法:
程式碼註解會持續保存在提取要求工作流程中;程式碼註解支援多次反覆進行檢閱,以及妥善處理巢狀回應。
檢閱者原則允許在接受變更時使用程式碼檢閱工作流程。
這是小組對任何推送至主要分支的程式碼變更共同作業的絕佳方式。
所需數目的檢閱者核准提取要求時,即可完成。
您也可以將提取要求標示為在檢閱之後自動完成。 成功編譯所有原則之後,即自動完成提取要求。
另外
您是否曾經處於意外刪除分支的狀態? 無法輕鬆地了解所發生的狀況。
Azure DevOps Server 現在支援搜尋已刪除的分支。 這可協助您了解誰和何時將其刪除。 此介面也可讓您重新建立分支。
只有在依確切名稱搜尋已刪除的分支以排除搜尋結果中不需要的項目時,才會顯示已刪除的分支。
若要搜尋已刪除的分支,請在分支搜尋方塊中輸入完整分支名稱。 這會傳回任何符合該文字的現有分支。
您也會看到一個選項,可搜尋已刪除分支清單中的完全相符項目。
如果找到相符項目,則您會看到誰和何時將其刪除。 您也可以還原分支。 還原分支會在最後一個指向的認可處加以重新建立。
不過,這不會還原原則和權限。