Team Foundation 和 Visual SourceSafe 之間的區別
您可以利用 Visual SourceSafe 和 Team Foundation 源代碼管理 完成下列同樣的基本任務:同時開發產品的多個版本,在不影響其他版本的情況下對產品的一個已發布版本進行更改,快速檢索一批相關文件,確定做出更改的用戶和時間,比較文件的版本以及將更改從一個版本移至其他版本。
Team Foundation 源代碼管理 客戶端界面旨在使 Visual SourceSafe 用戶所熟悉。這兩種產品都提供了命令行客戶端和 Visual Studio 2005 集成。Team Foundation 源代碼管理 沒有單獨的用戶界面,這一點與 Visual SourceSafe 相同。
盡管它們具有許多相似之處,但 Team Foundation 和 Visual SourceSafe 基本上是不同的。本主題分兩個主要部分來詳細描述這些不同之處:
結構區別 部分描述了 Team Foundation 和 Visual SourceSafe 之間在技術和操作上的區別。
功能區別 部分列出了只存在于一種產品中的功能,描述了細微的功能更改,按產品標識了不同的默認設置,并解釋了這些更改對您的團隊使用 Team Foundation 更有效地進行開發有哪些幫助。
結構區別
Visual SourceSafe 是僅包含客戶端的源代碼管理系統。它的客戶端(如 SourceSafe Explorer 和用于 Visual Studio 的插件)讀寫 Visual SourceSafe 數據庫,該數據庫是通常存儲在共享網絡文件夾中的文件集合。
Team Foundation 是客戶端-服務器源代碼管理系統,它使用 .NET Web 服務訪問存儲在 SQL Server 數據庫中的項。Team Foundation 源代碼管理的體系結構提高了性能和可靠性。
安全和項目權限
在 Visual SourceSafe 管理器程序中設置的 Visual SourceSafe 用戶權限和分配與對 Visual SourceSafe 數據庫文件夾的 Windows 共享權限無關。您可以為特定的 Visual SourceSafe 項目或個別 Visual SourceSafe 用戶設置權限和分配,但必須向所有 Visual SourceSafe 用戶授予對 Visual SourceSafe 數據庫文件夾的相同權限。因此,對于所有 Visual SourceSafe 用戶,無論使用 Visual SourceSafe 管理器程序指定的其項目級別權限如何,他們都可以訪問這些共享文件夾并對所有 Visual SourceSafe 數據具有完全控制權。
在 Team Foundation 中,用戶特定的操作權限和項目級別訪問權限受 Windows 用戶帳戶的限制。由 Internet Information Server 安全地執行用戶身份驗證。單獨訪問 SQL Server 數據庫的權限無需賦予執行源代碼管理操作的個別用戶。因此,這樣產生的 Team Foundation 安全結構安全、可靠并易于管理。
可靠性
由于 Visual SourceSafe 沒有服務器組件,因此涉及將數據從客戶端傳輸到數據庫的操作是非事務性的。這意味著如果發生問題,操作就無法回滾。在極少數情況下,在寫入操作期間確實發生像網絡連接斷開這樣的問題,此時可能會破壞受影響文件的完整性并丟失信息。
Team Foundation 是客戶端-服務器應用程序,該應用程序利用不會受到網絡連接問題影響的存儲過程在數據庫中執行寫入操作。此外,還使用事務執行某些操作,以便在這些操作出錯時可以回滾。這種體系結構確保了您的源文件不會無意中遭到破壞。它還確保了包含相關更改的文件組可以作為可能測試良好的 變更集 同時全部提交給源代碼管理服務器。
可伸縮性
Team Foundation 最多可支持 2000 名用戶的團隊,而 Visual SourceSafe 建議的團隊人數是二十或更少。Team Foundation 服務器包含的數據量可達到 SQL Server 數據庫允許(千兆字節)且您的硬件可支持的最大數據量,而 Visual SourceSafe 數據庫建議的大小限制是 4 GB。
功能差異
變更集
從概念上來說,Visual SourceSafe 數據庫和 Team Foundation 源代碼管理服務器的內部結構類似。這些數據庫和服務器都按分層的形式進行組織。文件夾包含文件,而文件包含由編號和創建日期/時間標識的版本。
Team Foundation 引入了一個 Visual SourceSafe 中沒有的概念:變更集。變更集是 Team Foundation 存儲與單個簽入操作相關的下列所有內容的邏輯容器:文件和文件夾修訂、指向相關工作項的鏈接、簽入說明、簽入注釋以及提交更改的用戶等其他信息。有關更多信息,請參見 使用源代碼管理變更集 。
共享和固定
Team Foundation 沒有與 Visual SourceSafe 的共享或固定功能等效的命令。
在將 Visual SourceSafe 項目遷移到 Team Foundation 時,用標簽替換 Visual SourceSafe 數據庫中的插針。
Team Foundation 中存儲歷史記錄的方式的不同之處
Visual SourceSafe 和 Team Foundation 以不同的方式存儲下列操作的歷史記錄。
-
添加和創建 ???在 Visual SourceSafe 中,添加一個文件或文件夾時,會創建該文件及其父級的一個版本。在該父級歷史記錄中,該操作被記錄為“添加”;而在該文件歷史記錄中,該操作被記錄為“創建”。在 Team Foundation 中,添加一個文件或文件夾時,將只用“添加”操作創建該文件或文件夾自身的一個版本。不為此操作創建父級版本。
-
重命名、刪除和撤消刪除 ???在 Visual SourceSafe 中,這些操作會創建父級的新版本;而在 Team Foundation 中,這些操作創建該項自身的一個新版本。
-
移動 ???在 Visual SourceSafe 中,在移動某一文件夾時,將同時創建源和目標父文件夾的新版本,并對每個父級記錄將該文件夾移入或移出父級的操作。不為文件夾 F 創建版本。例如,如果將文件夾 F 從源文件夾 S 移至目標文件夾 D,則對“將 $F 移出 S”操作創建 D 的新版本,并對“已將 $F 移入 D”操作創建 S 的新版本。在 Team Foundation 中,“重命名”操作只創建 F 的新版本。
簽入和簽出的區別
在 Visual SourceSafe 中,只有在編輯文件時才需要執行顯式簽出和簽入操作。在 Team Foundation 中,每個操作都需要執行顯式簽出和簽入操作。
Team Foundation 中工作方式不同的功能
與 Visual SourceSafe 不同,Team Foundation 在您簽出文件時不執行靜態 Get 操作。
在 Team Foundation 中,多個用戶可以同時對同一項進行簽出和更改。在 Visual SourceSafe 中,默認情況下以獨占方式執行簽出。但您可以在 Team Foundation 中鎖定某一文件,以防止其他用戶簽出該文件或簽入更改。有關更多信息,請參見 了解鎖定類型 。
分支和合并 ???由于 Visual SourceSafe 并不存儲文件或文件夾的兩個分支之間的合并歷史記錄,因此 Visual SourceSafe 只支持非?;镜姆种Ш秃喜⒐δ?。但 Team Foundation 源代碼管理 確實支持合并歷史記錄。在 Visual SourceSafe 中,由于沒有合并歷史記錄,進行的合并最終是無依據的。
簽出操作不對正在簽出的文件執行 Get Latest 操作
當您執行 Get 操作以用一組文件填充工作區時,將從源代碼管理創建一個一致的快照。通常,系統上源代碼的配置表示 Team Foundation 源代碼管理 服務器中已知一起運行的文件的時間點快照,因此能夠進行生成和測試。
作為在工作區中執行操作的開發人員,您將被隔離,不受其他開發人員所做更改的影響。您可以根據需要執行 Get 操作,以控制何時接受來自其他開發人員的更改。理論上說,當您這么做時,將更新源代碼的整個配置,而不僅僅是一兩個文件。其原因是一個文件的更改通常取決于其他文件的相應更改,因此您必須確保您仍具有一個能夠進行生成和測試的一致的源代碼快照。
這就是簽出操作不對正在簽出的文件執行 Get Latest 操作的原因所在。更新正在簽出的那個文件將違反一致的快照邏輯,因此可能會導致無法生成或測試源代碼配置。作為一種備選方法,Team Foundation 會強制您在簽入更改之前的某一時間點執行 Get Latest 操作,以便在您嘗試簽入更改且沒有最新副本的情況下,用解決沖突對話框向您提示。
Visual SourceSafe 中不存在的 Team Foundation 功能
Team Foundation 中不存在的 Visual SourceSafe 功能
-
共享
-
固定
-
存檔和還原
-
銷毀
-
關鍵字擴展
-
回滾
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
