原始碼版本管理新思維 - 升級 Visual SourceSafe 到 Team Foundation Server

註1: 升級到 TFS 2013,可參考這篇 MSDN step-by-step 文章

註2: 更多學習資源 - [ALM 學習] 程式碼管理 (Source Control & Management)

原始碼版本管理新思維 - 升級 Visual SourceSafe 到 Team Foundation Server 2012

摘要

多人組成的應用程式開發團隊,在進行應用程式開發工作的時候,通常都會面臨: 多人需要同時編輯同一份原始程式檔案的場景。所以,一個功能完善的原始碼版本管理系統支援,對專案開發是否能夠順利進行就很重要。當多個團隊成員需同時編輯同一份原始程式檔案時,團隊成員編輯過的檔案要如何合併?如何避免檔案覆蓋失誤?

針對這個需要高度關注的問題,許多公司還是僅僅依靠早期的 Microsoft Visual SourceSafe (VSS) 原始碼版本管理工具,甚至是網路分享資料夾來管理開發團隊的原始程式碼檔案。在專案團隊成員不在同一個辦公室,但是團隊成員需要更密切整合,需要更快速反應專案的需求,或是專案團隊規模龐大的狀況下,不管是使用網路分享資料夾來管理開發團隊的原始程式碼檔案,或是使用早期的 Visual SourceSafe (VSS) 來管理開發團隊的原始程式碼檔案都己經無法應付現今的專案開發的需求。

原始碼版本管理新思維 - 升級 Visual SourceSafe 到 Team Foundation Server 2012

原始碼版本管理與專案管理工作整合的重要性

原始碼版本管理系統可以視為是具有時間軸概念的檔案系統,團隊成員可以將原始程式檔案和資料夾的狀態分享給團隊其他的成員,也可以回到過去,檢視某個指定的時間點的原始程式檔案的內容與版本。

一個優良的原始碼版本管理系統應該要能夠提供良好的可靠度,確保專案團隊的原始程式檔案的正確性與信任度,提供良好的原始碼共用機制,支援專案團隊進行長遠的軟體開發策略,提供良好的原始程式碼品質,支援完整的軟體測試與每日建置作業,提供整合工作項目與郵件通知功能,協助專案團隊進行專案品質控管。

原始碼版本管理功能不但負責管理專案最重要的原始程式碼資產,也是專案管理工作的重要基礎,必須要能夠與專案管理密切整合,提供原始碼簽入驗証的功能,協助測試工作、自動化組建、與部署的進行。這些都不是單純地利用網路分享資料夾,或是利用早期的 Visual SourceSafe 來管理開發團隊的原始程式碼檔案就可以很容易解決的問題。

使用網路分享資料夾管理開發團隊的原始程式碼檔案屬於人工式的原始碼版本管理,Visual SourceSafe 進行原始碼版本管理只能解決原始碼版本管理的問題,無法延伸原始碼版本管理功能,建立原始程式碼與產品待辦事項、工作項目、測試案例、與 Bug 報告之間的關聯,強化開發進度與程式碼品質的追蹤與監督,確實掌握系統開發進度,並整合測試、自動化組建、與部署等工作,縮短系統改版與上線的時程。這兩者都無法符合現代化專案開發所需要的原始碼版本管理功能的需求。

認識 Team Foundation Server 2012 支援的原始碼版本管理功能

Team Foundation Server 2012 (TFS 2012) 內建的原始碼版本管理系統提供豐富的功能,包括分支、合併、擱置、不可分割的簽入單元、程式碼簽入原則、以及安全管制等等,提供支援團隊發展長生命週期的軟體的重要基礎,其背後是利用 Microsoft SQL Server 資料庫伺服器來確保所管理的原始程式檔案的完整性,並提供資料備份與良好的延展性。更重要的是 Team Foundation Server 2012 內建的原始碼版本管理系統是專案開發的核心樞鈕,不僅能夠支援原始碼版本管理,也能夠支援專案開發相關的工作,提升專案開發的能量,降低專案開發的工作負擔,是現代化的專案團隊致勝的重要關鍵。使用 Team Foundation Server 2012 支援的原始碼版本管理系統的優點如下:

  1. 完整的軟體生命週期管理 (Application Lifecycle Management, ALM) 及完善的網路存取功能
    Visual Studio Ultimate 版本搭配 Team Foundation Server 提供了完整的 ALM 平台,ALM 平台除了版本管理外、整合測試、自動化組建、部署、工作項目及專案管理等工作,縮短系統改版與上線的時程並提高管理的能見度。

    開發團隊可以利用 Microsoft Visual Studio、Test Manager、瀏覽器存取 Team Foundation Server,使用非 Microsoft 支援的應用程式整合開發環境 (例如 Eclipse) 的程式設計師也可以經由安裝 Team Explorer Everywhere 套件,方便地管理專案的原始程式碼,協助不在同一個地點的開發團隊 (例如跨國團隊) 進行原始碼版本管理的工作。

  2. 支援程式碼簽入原則
    Team Foundation Server 2012 內建的版本管理功能支援工作項目、組建、程式碼分析、與變更集註解原則等四種簽入原則,限制欲簽入到原始碼版本管理系統的原始程式碼必須符合的規範,強化簽入到原始碼版本管理系統的原始程式碼的正確性與品質。

  3. 優良的分支與合併
    對長時間開發某一產品系列的軟體的公司而言,應用程式開發的工作完成之後,就可以建立 V1.0 的分支準備測試與發行 V1.0 版,同時也可以建立 V2.0 版的分支,準備繼續往開發下一個版本的軟體 (V2.0版) 的里程碑邁進,由兩個不同的開發團隊分別進行 V1.0 版的測試工作和 V2.0 版的開發工作。這時候就可以採用圖 1 的原始程式碼分支策略:

    圖 1:測試與發行 V1.0 版與開發 V2.0 版的工作同時進行的分支策略

  4. 建立原始程式碼與產品待辦事項、工作項目、測試案例、與 Bug 報告之間的關聯
    開發團隊在完成系統功能的開發之後簽入到原始碼版本管理系統形成的變更集可以與工作項目或是 Bug 報告建立關聯,表示完成工作項目或是解決 Bug 報告描述的問題。如果所完成的工作項目與產品待辦事項建有關聯,就可以反應產品待辦事項的完成比例,而所解決的 Bug 報告也可以經由所關聯的測試案例查詢到測試案例關聯的工作項目,了解工作項目的測試完成度,強化開發進度與程式碼品質的追蹤與監督,確實掌握系統開發進度。

升級 Visual SourceSafe 到 Team Foundation Server 2012

了解使用 Team Foundation Server 2012 (TFS 2012) 管理專案原始程式碼的優點之後,原先使用網路分享資料夾管理開發團隊的原始程式碼檔案的開發團隊可以直接採用 TFS 2012 管理專案的原始程式碼,而使用 Visual SourceSafe (VSS) 進行原始碼版本管理的開發團隊可以直接利用 TFS 2012 管理新的專案的原始程式碼,或是將原先由 VSS 管理的原始程式碼升級到 TFS 2012,利用 TFS 2012 先進的原始程式碼管理功能,協助進行專案開發的工作。

欲將原先由 Visual SourceSafe 管理的原始程式碼升級到 Team Foundation Server 2012,首先要請所有的程式設計師結束目前編輯原始程式碼的工作,並執行簽入 (Check in) 原始檔的動作,而且登出 Visual SourceSafe 資料庫。做好之後請所有的程式設計師關閉 Visual Studio 應用程式開發工具和 Visual SourceSafe Explorer,再執行備份 Visual SourceSafe 資料庫 (實際上是一個資料夾) 的動作。

完成簽入原始程式碼與備份 Visual SourceSafe 資料庫的動作之後,開發團隊可以利用手動的方式將指定的專案的原始程式碼自 Visual SourceSafe 升級至 Team Foundation Server 2012,也可以將 Visual SourceSafe 管理的所有專案的原始程式碼全部都升級到 Team Foundation Server 2012。

升級指定的專案

欲將 Visual SourceSafe 管理的某個專案的原始程式碼升級到 Team Foundation Server 2012,請先啟動 Visual SourceSafe,使用滑鼠的右鍵點選欲升級的專案,執行 [Get Latest Version] 功能,將指定的專案取出到硬碟的資料夾。做好之後請啟動 Visual Studio 2012,開啟自 Visual SourceSafe 取出的專案,執行 [檔案 | 原始檔控制 | 進階 | 變更原始檔控制] 功能,您就會看到如圖 2 所示的畫面:

圖 2:管理專案原始碼繫結設定的畫面

如果專案的原始程式檔案尚繫結至原有的 Visual SourceSafe,則請點選[解除繫結]按鈕,解除專案原有的原始碼繫結設定。

做好之後請按下 [確定] 鍵。如果 Visual Studio 己設定原始檔控制外掛程式為 Visual SourceSafe,則必須執行原始檔控制外掛程式的設定,將 Visual Studio 2012 的原始檔控制外掛程式設定為 Team Foundation Server,如果 Visual Studio 2012 的原始檔控制外掛程式並未設定為 Visual SourceSafe,則可以不用執行以下的動作,直接使用 Visual Studio 2012 開啟從 Visual SourceSafe 取出的專案即可。

欲將 Visual Studio 2012 的原始檔控制外掛程式設定為 Team Foundation Server,請啟動 Visual Studio 2012,執行 [工具 | 選項 | 原始檔控制 | 外掛程式選擇] 功能,您就會看到設定原始檔控制外掛程式的畫面,如圖 3 所示:

請將 [目前的原始檔控制外掛程式] 選項設定為:Visual Studio Team Foundation Server,然後按下 [確定] 鍵,設定 Visual Studio 2012 使用 Team Foundation Server 為原始檔控制外掛程式。

做好之後就可以將開啟自 Visual SourceSafe 的專案加入到 Team Foundation Server 內建的原始檔控制系統中。

欲將專案加入到 Team Foundation Server 內建的原始檔控制系統中,首先必須事先建立妥 Team 專案,然後才能夠將專案加入到內建的原始檔控制系統。您可以執行 [檢視 | Team Explorer] 功能,開啟 [Team Explorer] 視窗,您就會見到如圖 4 的視窗:

圖 4:[Team Explorer] 視窗的首頁

請點選 [Team Explorer] 視窗中的 [連接到 Team Foundation Server] 連結,執行連接到指定的 Team Foundation Server 伺服器的動作,您就會看到 [連接到 Team Foundation Server] 的畫面,如圖 5 所示:

圖 5:[連接到 Team Foundation Server] 的執行畫面

請點選圖 5 畫面中的 [伺服器] 鍵,指定欲連接的 Team Foundation Server,看到 [新增/移除 Team Foundation Server] 畫面後按下 [加入] 鍵,加入欲連接的 Team Foundation Server,螢幕上就會出現如圖 6 的畫面:

圖 6:指定欲連接的 Team Foundation Server 的畫面

請於 [Team Foundation Server 的名稱或 URL] 欄位輸入欲連接的 Team Foundation Server 的電腦名稱或 URL,然後按下 [確定] 鍵,再按下 [關閉] 鍵關閉 [新增/移除 Team Foundation Server] 畫面,回到 [連接到 Team Foundation Server] 的畫面。請按下 [連接] 鍵,執行連接到所指定的 Team Foundation Server 的動作。

連接到所指定的 Team Foundation Server 之後回到 [Team Explorer] 視窗,請點選[建立新 Team 專案]連結,執行建立新的 Team 專案的動作,您就會看到如圖 7 的畫面:

圖 7:輸入 Team 專案名稱的畫面

請於 [Team 專案的名稱為何 ? ] 欄位輸入欲建立的 Team 專案的名稱,然後按下 [下一步] 鍵,進入選擇 Team 專案欲使用的流程範本的畫面,如圖 8 所示:

圖 8:選擇 Team 專案欲使用的流程範本的畫面

請於 [應該使用哪個流程範本建立 Team 專案] 欄位選擇欲使用的流程範本後按下 [下一步] 鍵,進入指定原始檔控制資料夾的畫面,如圖 9 所示:

圖 9:指定原始檔控制資料夾的畫面

請按下圖 9 畫面中的 [下一步] 鍵,進入檢視 Team 專案設定的畫面,檢視 Team 專案設定無誤之後請按下 [完成] 鍵執行建立 Team 專案的動作,並在 Team 專案建立成功後按下 [關閉] 鍵關閉建立 Team 專案的畫面。

建立妥 Team 專案之後,請使用滑鼠右鍵點中 [方案總管] 視窗中的專案名稱,從出現的功能表選擇[將方案加入至原始檔控制]功能,螢幕上就會出現指定 Team 專案位置的畫面,如圖 10 所示:

圖 10:指定 Team 專案位置的畫面

請按下 [確定] 鍵接受預設的 Team 專案位置,就可以將專案加入到 Team Foundation Server 內建的原始碼版本管理系統中,完成將指定的專案自 Visual SourceSafe 移植至 Team Foundation Server 的工作。

升級 Visual SourceSafe 管理的所有專案

開發團隊可以利用 Team Foundation Server 2012 支援的 Visual SourceSafe 升級精靈,將 Visual SourceSafe 管理的所有專案全部移植到 Team Foundation Server 2012。

首先請啟動 [Team Foundation Server 管理主控台] 工具,點選 [其他工具與元件] 項目底下的 [Visual SourceSafe] 項目,您就可以看到如圖 11 的畫面:

圖 11:[Team Foundation Server 管理主控台] 工具的執行畫面

請點選圖 11 畫面中,文字為[按一下這裡下載並安裝 VSS 升級精靈]的連結,啟動 VSS Upgrade Wizard 將 Visual SourceSafe 管理的所有專案全部都升級到 Team Foundation Server 2012。

[Team Foundation Server 管理主控台] 工具會自動啟動瀏覽器並瀏覽至 Visual SourceSafe Upgrade Tool for Team Foundation Server 的下載畫面。請下載並安裝 Visual SourceSafe Upgrade Tool,並在安裝妥 Visual SourceSafe Upgrade Tool 之後啟動 Visual SourceSafe Upgrade Tool,準備進行將 Visual SourceSafe 管理的所有專案全部升級到 Team Foundation Server 2012 的工作。

VSS Upgrade Wizard 啟動之後您就會看到如圖 12 的畫面:

圖 12:VSS Upgrade Wizard 的執行畫面

請按下畫面中的 [Browser] 鍵選擇欲升級的 Visual SourceSafe 資料庫,請瀏覽至放置 Visual SourceSafe 資料庫的資料夾底下名稱為 srcsafe.ini 設定檔。勾選 [Select all] 選項,表示要將 Visual SourceSafe 管理的所有專案升級至 Team Foundation Server,然後點選 [List Available Projects] 連結,列出 Visual SourceSafe 管理的所有專案的清單,再勾選 [By checking this box, I confirm that I have run Analyze in this Visual SourceSafe repository] 選項確認要對欲升級的 Visual SourceSafe 資料庫執行分析的動作。做好的畫面如圖 13 所示:

圖 13:設定妥欲升級的 Visual SourceSafe 資料庫與欲升級的專案的畫面

設定妥欲升級的 Visual SourceSafe 資料庫之後請按下 [下一步] 鍵,進入選擇放置自 Visual SourceSafe 升級的專案的 Team 專案的畫面。

[提示]

如果尚未於 Team Foundation Server 建立任何的 Team 專案,請參考前述的說明執行建立 Team 專案的動作。

螢幕上就會出現如圖 14 的畫面,要求您選擇放置升級的專案的 Team 專案的網址:

圖 14:要求選擇放置升級的專案的 Team 專案的網址的畫面

請按下畫面中的 [Browse] 鍵瀏覽並選取放置升級專案的 Team 專案,螢幕上就會出現如圖 15 的畫面,要求您選擇放置升級專案的 Team 專案:

圖 15:要求選擇放置升級專案的 Team 專案

選取妥放置升級專案的 Team 專案之後請按下 [Select Project] 鍵,回到 [VSS Upgrade Wizard] 精靈的執行畫面。

請按下 [下一步] 鍵,進入選取升級選項和 SQL Server 伺服器的畫面,如圖 16 所示:

圖 16:選取升級選項和 SQL Server 伺服器的畫面

如果想要將欲升級的專案完整的異動記錄全部都升級到 Team Foundation Server 2012,可以選擇 [Full history] 選項,如果只要將專案最新的原始程式檔案升級到 Team Foundation Server,則可以選擇 [Tip] 選項。除此之外,請於 [SQL Server Instance] 欄位指定存放升級動作產生的暫時資料的 SQL Server 資料庫伺服器,並點選文字為 [Test] 的連結,驗証是否可以成功連接到所指定的 SQL Server 資料庫伺服器。

做好之後請按下 [下一步] 鍵,進入檢視升級設定內容的畫面,如圖 17 所示:

圖 17:檢視升級設定內容的畫面

檢視升級設定無誤後請按下畫面中的 [Verify] 鍵,驗証升級設定的正確性,驗誤無誤後,[Verify] 鍵會變更成 [Upgrade] 鍵,如圖 18 所示:

圖 18:驗証升級設定成功的畫面

您只要按下畫面中的 [Upgrade] 鍵,就可以將 Visual SourceSafe 管理的所有專案升級至 Team Foundation Server。升級 Visual SourceSafe 管理的專案成功的畫面如圖 19 所示:

圖 19:升級 Visual SourceSafe 管理的專案成功的畫面

升級完成後請按下 [下一步] 鍵,再按下 [Close] 鍵關閉 [VSS Upgrade Wizard] 的執行畫面。

將 Visual SourceSafe 管理的所有專案升級至 Team Foundation Server 之後,您可以開啟 [Team Explorer] 的首頁,點選 [原始檔控制總管] 連結,使用滑鼠右鍵點中 Team 專案中的專案資料夾,從出現的功能表選擇 [取得最新的版本] 功能,將專案取出到硬碟指定的資料夾中,螢幕上就會出現要求您選擇放置取出的專案的資料夾的畫面,如圖 20 所示:

圖 20:要求選擇放置取出的專案的資料夾的畫面

請於 [本機資料夾] 欄位輸入放置取出的專案的資料夾,然後按下 [對應] 鍵,就可以將自 Visual SourceSafe 升級到 Team Foundation Server 的專案取出到指定的硬碟資料夾中。

請使用 Visual Studio 2012 開啟自 Team Foundation Server 取出的專案,如果 Visual Studio 2012 並未指定 Team Foundation Server 2012 為原始檔控制的外掛程式,請先參考前述的做法,設定 Visual Studio 2012 使用 Team Foundation Server 為原始檔版本控制的外掛程式。做好之後請執行 [檔案 | 原始檔控制 | 進階 | 變更原始檔控制] 功能,重新繫結原始碼檔案至 Team 專案的位置,您就會看到如圖 21 的畫面:

圖 21:繫結專案原始程式檔案至原始檔版本管理工具的畫面

如果專案的原始程式檔尚未建立與 Team Foundation Server 2012 管理的原始程式檔之間的繫結,請點選未繫結的項目再點選工具列中的 [繫結] 按鈕,建立專案的原始程式檔與 Team Foundation Server 管理的原始程式檔之間的繫結關係。

結語

對系統上線時程日益縮短、團隊成員分散在不同的地點,或是規模較大的專案,使用網路分享資料夾或是早期的 Visual SourceSafe 原始碼版本管理工具管理專案的原始程式碼己經不合時宜。及早導入現代化的原始碼管理工具管理專案的原始程式檔案,提升專案原始碼的品質與可靠度,協助專案開發工作的進行、追蹤、與監控,是開發成功的專案的第一步。

更多參考文章 -

1. 升級到 TFS 2013,可參考這篇 MSDN step-by-step 文章

2. 更多原始碼管理、版本管控及 TFS 的學習 Tutorial - [ALM 學習] 程式碼管理 (Source Control & Management)