1.什么是 Azure Repos
Azure Repos 是一組版本控制工具,可用于管理代碼。無論您的軟件項目是大型項目還是小型項目,都應(yīng)盡快使用版本控制。
版本控制系統(tǒng)是可幫助您跟蹤隨時間變化對代碼所做的更改的軟件。在編輯代碼時,您告訴版本控制系統(tǒng)對文件進行快照。版本控制系統(tǒng)會永久保存該快照,以便以后需要時可以重新調(diào)用它。使用版本控制來保存您的工作并協(xié)調(diào)整個團隊中的代碼更改。
即使您只是一個開發(fā)人員,版本控制也可以幫助您在修復(fù)錯誤和開發(fā)新功能時保持井井有條。版本控制保留了您的開發(fā)歷史,因此您可以輕松查看甚至回滾到任何版本的代碼。
Azure Repos提供兩種類型的版本控制:
Git:分布式版本控制
Team Foundation版本控制(TFVC):集中式版本控制
上面是官方文檔的內(nèi)容。雖然給出了兩個選項,但現(xiàn)在大部分人都對 Git 比較熟悉,我也假設(shè)讀者對 Git 有一定了解而無需多做解釋。
在上一篇文章里我已經(jīng)創(chuàng)建了一個項目并且選擇了 Git 作為版本控制方式,在 Azure Devops 左邊菜單選中 “Files” 進入文件頁面,首先看到的就是上圖這樣的畫面。可以看到除了剛創(chuàng)建的存儲庫,還可以添加新的存儲庫或?qū)肫渌鎯臁_@篇文章我將配合最新版本的 Visual Studio 16.9 從頭開始創(chuàng)建項目并介紹 Azure Repos 的基本功能。
因為現(xiàn)有的視頻和教程幾乎都是圍繞 Azure 和 Asp.net 講解 Azure Repos 和 Pipelines,所以我特地選擇 WPF 應(yīng)用來實現(xiàn)同樣的功能。
首先復(fù)制下面這個鏈接,然后打開 Visual Studio,隨便創(chuàng)建一個 WPF .Net Framework 項目。
創(chuàng)建項目后在 Visual Studio 右下角找到“添加到源代碼管理器”按鈕,選擇“Git”。
在彈出的創(chuàng)建Git存儲庫對話框選擇“現(xiàn)有遠程”,在 Remote URL 中粘貼剛剛復(fù)制的鏈接。點擊創(chuàng)建并推送。
完成后,Visual Studio 右下角應(yīng)該是這個樣子,代表現(xiàn)在是 wpf 存儲庫的 master 分支。
刷新 Files 頁面,可以看到剛剛創(chuàng)建的項目已經(jīng)上傳到 master 分支了。
創(chuàng)建好分支后,代碼就已經(jīng)在團隊里共享。通常來說團隊中的人都需要修改代碼,但將代碼提交到 master 分之前需要先通過 CodeReview。接下來將介紹如何在 Azure Repos 中通過 Branch Policies(分治策略)保護代碼安全性。
在左側(cè)菜單中選中 Branches,進入 Branches 頁面后可以看到剛剛創(chuàng)建的 master 分支。點擊右側(cè)的”More… “按鈕,然后選擇”Brance policies“進入 master 分支的分支策略頁面。
如下圖所示,在 Branch Policies,打開“Require a minimum number of reviewers”選項,將“Minimum number of reviewers”這是為 1,打開“When new changes are pushed:”并選中“Reset all code reviewer votes”。
這樣設(shè)置完以后,master 分支就不能刪除,并且只能通過 Pull Request 修改;最少需要一個 Code reviewer;PR 每次發(fā)生更改都重置代碼審閱者的投票。
下面還可以選中“Check for linked work items”,避免無緣無故的代碼提交。
“Build Validation”涉及到 Pipelines 的內(nèi)容,下一篇再解釋。
最后添加一些 Code reviewer,Optional 標識可選的,即如果有多個 Code reviewer,只需要其中一個通過就可以簽入到 master 分支。最好取消“Allow requestors to approve their own changes”。
假設(shè)項目里有一個“添加單元測試”的 PBI 及它的 Task,現(xiàn)在我需要添加單元測試并修改一些代碼后提交到 master 分支。但之前修改了分支策略后就不可以直接修改代碼,而需要通過 Pull Request。
首先我需要新建分支,然后隨便更新些代碼。然后在 Visual Studio 右下角點擊這個按鈕。
在 “Git 更改” 頁面輸入提交的消息,并且輸入 #1 #2,關(guān)聯(lián) ID 號為 1 和 2 的工作項。然后選中“全部提交并推送”。
然后回到 Azure Devops,在左側(cè)菜單選中 Pull requests,在 Pull requests 頁面可以看到系統(tǒng)貼心地提示我要不要創(chuàng)建一個 Pull request,從了它,點擊“Create a pull request”。
在創(chuàng)建 Pull request 的頁面可以看到這個 PR 有 1 個提交并修改了 9 個文件,系統(tǒng)已經(jīng)貼心幫我填好 Title,并關(guān)聯(lián)了兩個工作項。點擊“Create”創(chuàng)建完成 Pull request 的創(chuàng)建。
順便一提,如果標題有“[WIP]”,右下角的按鈕會默認選中“創(chuàng)建為草稿”。
Pull request 創(chuàng)建后,在 PR 的詳細頁面可以看到它的內(nèi)容、是否沖突、關(guān)聯(lián)的工作項、歷史記錄等。這時候只需要等待一個 code reviewer 審核通過,通過后右上角的藍色按鈕會變成“Complete”,點擊即可完成這個 PR 并將代碼合并到 master 分支。
也可以點擊右上角的“Set auto-complete”按鈕,設(shè)置為當(dāng)審核通過后馬上自動完成??梢赃x中“Complete associated work items after merging”,這樣 Pull request 完成后管理的 work item (在這里只有 Task 會自動完成,PBI 還是需要人手操作)也會被自動完成。
這時候 reviewer 會收到通知要做 review,然后他就可以來看看這個 Pull request 做了些什么,沒問題的話他就可以 Approve 這個 Pull request。