Visual Studio 2005 TFVC週年慶

【已發表於《程序員》2006年第12期“Visual Studio 2005週年慶”特刊】

正是去年的這個時候,微軟可謂重磅出擊,一口氣發佈了多款重量級產品,其中最能加速開發人員心跳的恐怕就屬Visual Studio 2005。Visual Studio 2005及.NET 2.0的發佈,不僅標誌着微軟在.NET平臺的日漸成熟與壯大,而且將能夠用更加強有力的工具來開發功能更加豐富、體驗更加完美的Web及桌面應用程序。

作者在這裏當然無法將整個Visual Studio 2005產品系列都逐一介紹,爲了配合本期專刊的推出,我在這裏僅以自己的能力和經驗向大家展示Visual Studio 2005中的版本控制系統。

整體介紹

Visual Studio 2005 Team Foundation Version Control是微軟推出的新一代版本控制系統,提供了標準的源代碼版本控制功能,該功能具有很好的伸縮性,可以很方便地爲數百人的大型開發團隊提供支持。除了典型的源代碼管理功能外,它還是企業級軟件配置管理產品,爲開發團隊提供集成的版本控制、問題跟蹤和過程管理。

Team Foundation Version Control包括以下功能:
●    完整的版本控制功能集;
●    簽入(一次簽入一個更改);
●    強大的分支與合併功能;
●    擱置功能;
●    簽入策略。

TFVC在與其它Team Foundation功能集成到Visual Studio環境當中的同時還提供了一個獨立的圖形用戶界面和命令行接口,這樣就可以有效地提高管理人員的工作效率,減少操作步驟,使他們可以將精力集中於項目的管理方面。

作爲項目的開發人員,無論是程序員還是美工甚至是專職的文檔編寫員,都很可能需要將自己的工作項目加入到TFVC當中來以便於和整個團隊共享。

TFVC向開發人員提供的操作包括:
●    從源代碼服務器檢索文件;
●    向源代碼服務器添加文件;
●    簽出文件然後進行必要的修改;
●    簽入修改過後的文件;
●    從源代碼服務器刪除文件;
●    比較文件差別;
●    合併文件之間的更改。

TFVC的管理員的主要職責是負責維護軟件配置管理系統中存儲的數據完整性,根據開發團隊採用的配置管理方法來管理服務器中的源代碼並對這些代碼進行分支併合並分支之間的更改,另外,管理員還需要從位於軟件配置管理系統中的文件創建可重現的生成,並在生成過程中創建文件快照以便於以後檢索。此外還有一些可能不太常用的工作,比如爲日後的評審工作方便而保存生成過程中的中間和最終輸出。

TFVC向管理員提供的操作包括:
●    對源代碼服務器中的代碼進行分支;
●    對當前開發狀態的快照創建標籤;
●    合併源代碼服務器中各分支之間的更改。

TFVC相對於Visual SourceSafe的改進

一直使用Visual Studio集成開發環境的讀者朋友可能大多數過去都使用過或者目前仍然正在使用Visual SourceSafe這款相當著名源代碼管理軟件,那麼您可能心裏早就有疑問了:既然Visual SourceSafe也推出了2005版,那麼爲什麼還要TFVC呢?

很好,這是一個值得花一定篇幅來回答的問題!

如果把Visual SourceSafe和TFVC分別看作是兩個功能集合,那麼它們之間存在着一個交集,這個交集就是它們所能完成的共同的功能,例如:同時開發產品的多個版本,在不影響其它版本的前提下對產品的已發佈版本進行更改,快速檢索相關源文件,確定做出更改的用戶和時間,比較文件的兩個版本以及將在版本之間移動更改。這些都是日常的版本控制及源代碼管理中出現最頻繁的工作任務。那麼您可能已經想到,如果沒有差別或者差別很小的話是完全沒有必要再推出TFVC的,只需要對Visual SourceSafe做一些改動或者升級就行了。那好,我們現在就把精力集中在這兩兄弟之間的差別上吧。

系統結構與權限設置

Visual SourceSafe是一款僅包含客戶端的源代碼管理系統。它的客戶端(如SourceSafe Explorer和用於Visual Studio的插件)從Visual SourceSafe數據庫中進行讀寫,該數據庫是通常存儲在共享網絡文件夾中的文件集合。而TFVC是客戶端—服務器源代碼管理系統,它使用.NET Web Services訪問存儲在Microsoft SQL Server數據庫中的項。由此可見,TFVC源代碼管理的體系結構顯著地提高了性能和可靠性。

Visual SourceSafe的用戶權限和分配是與Visual SourceSafe數據庫文件夾的Windows共享權限無關的,您可以爲特定的項目或個別用戶設置權限和分配,但必須向所有用戶授予對數據庫文件夾的相同訪問權限。因此,對於所有Visual SourceSafe用戶,無論Visual SourceSafe爲其指定的項目權限是什麼級別,他們都可以直接訪問這些共享文件夾並對所有Visual SourceSafe數據擁有完全控制權。在TFVC中,用戶具備的操作權限及項目訪問權限受Windows用戶帳戶的限制,由Internet Information Server執行用戶身份驗證,訪問Microsoft SQL Server數據庫的權限無需賦予執行源代碼管理操作的個別用戶。因此,較之基於文件系統的Visual SourceSafe而言,TFVC具有更加安全、可靠且易於管理的特性。

TFVC中的事務性操作

由於Visual SourceSafe沒有服務器組件,因此涉及將數據從客戶端傳輸到數據庫的操作是非事務性的。一旦發生問題,操作是無法回滾的。如果在寫入操作期間發生了像網絡連接斷開或計算機非正常關閉等諸多令人頭疼的問題就很可能會破壞受影響文件的完整性並丟失信息。前面提到,TFVC是客戶端—服務器源代碼管理系統,該系統利用不會受到網絡連接等問題影響的存儲過程在數據庫中執行寫入操作。此外,還使用事務執行寫入或更改操作以保證在這些操作出錯時可以回滾。這種體系結構確保了源文件不會無意中遭到破壞。它還確保了包含相關更改的文件組可以作爲測試良好的變更集同時全部提交給源代碼服務器。因此TFVC可以保證您的資源始終處於安全的保護之下,而如果是使用Visual SourceSafe,恐怕有時候您不得不暗自祈禱自己的運氣不要太糟。

新概念:變更集

上一段中提到了一個Visual SourceSafe中沒有的新概念“變更集”。變更集是TFVC存儲與單個簽入操作相關的文件和文件夾修訂、指向相關工作項的鏈接、簽入說明、簽入註釋以及提交更改的用戶等其他信息的邏輯容器。在簽入一組掛起的更改時,TFVC會在源代碼服務器中創建一個新的變更集,併爲它分配一個唯一的編號。變更集編號按順序遞增。兩個變更集不能具有相同的簽入日期/時間,由此特性,變更集也用於表示服務器狀態的特定時間點。

如果把Visual SourceSafe看作是一個普通的男人,那麼TFVC恐怕就是施瓦辛格一樣的壯漢。相比Visual SourceSafe支持20人的開發團隊規模,TFVC最多可支持高達500人的團隊。Visual SourceSafe對於服務器數據量的大小限制在4G左右,而TFVC則可以達到Microsoft SQL Server數據庫允許的上限(只要您的硬件也能存儲下如此多的數據)。

與 Visual SourceSafe 不同,TFVC在您簽出文件時不執行靜態Get操作。在TFVC中,多個用戶可以同時對同一項進行簽出和更改,而在Visual SourceSafe中,默認情況下以獨佔方式執行簽出,但您可以在TFVC中鎖定某一文件,以防止其他用戶簽出該文件或簽入更改。TFVC將會隔離正在工作去執行操作的用戶以保證不被其他用戶做更改所影響。用戶可以根據需要來執行Get操作,以便於控制在何時接受其它用戶的更改。理論上講,當用戶這樣做的時候,將會更新源代碼的整個配置,而不僅僅是幾個文件,原因是一個文件的更改通常取決於其它文件的相應更改,因此用戶必須確保他仍然具有一個能夠進行生成和測試的一致的源代碼快照。基於這樣的考慮,TFVC在用戶執行簽出操作時不會對正處於簽出狀態的文件執行Get Latest操作,因爲更新正在簽出的文件將違背一致的快照邏輯,因而可能會導致無法生成或測試源代碼配置。

另外,我將Visual SourceSafe與TFVC各自特有的功能總結羅列如下:

Visual SourceSafe

TFVC

共享

工作區

固定

變更集

存檔與還原

擱置集

銷燬

Team Foundation工作項

關鍵字擴展

簽入策略

 

簽入說明

 

通過設置警報來執行電子郵件通知


總結

Team Foundation的到來表明了微軟Visual Studio產品組開始重視和支持團隊(尤其是大型的團隊)協作開發,TFVC的作用正是配合Team Foundation解決大規模協同開發中版本控制及源代碼管理可能碰到的障礙和瓶頸,使得開發團隊的規模不再受限於所使用的管理軟件,同時可以更好地解決過去的項目開發管理中存在的一些難題。對於現在的軟件開發來說,管理是非常重要的,難以想象一個管理混亂的開發團隊能夠製造出精品,藉由微軟推出的這套開發管理系統,有助於廣大開發團隊大幅度提高自身管理能力,保證軟件的開發質量,有效降低產品的開發風險。如果再繼續培養和加強刻苦追求卓越的精神,我相信中國的軟件開發團隊一樣也能夠做出令世界爲之驚歎的作品!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章