了解 VSS 升級工具轉換資料的方式
Visual SourceSafe 升級工具是便利的一次性單向升級方法,可用來將程式碼庫從 Visual SourceSafe 升級至 Team Foundation Server (TFS)。只有在您準備好要在 Visual SourceSafe 中停止進行存取,並開始在 TFS 中進行維護時,才應該使用這個工具來升級資料。
TFS 和 Visual SourceSafe 在功能上有顯著的差異。因此,Visual SourceSafe 升級工具會在升級期間修改特定種類的資料。
本主題內容
變更集的建立方式
共用及釘選項目的升級方式
記錄資料的移植方式
如何移植有關使用者名稱和時間戳記的資料
如何轉換特定類型的事件
版本控制繫結的移植方式
變更集的建立方式
TFS 版本控制會在使用者簽入一組變更時,將多個檔案的變更分組成一個單位。這個單位稱為變更集。
Visual SourceSafe 並沒有相當於變更集的功能。但是在轉換程序期間,只要下列條件成立,每一組變更都會分組為變更集:
變更彼此不衝突。例如,不會有兩個動作影響同一個檔案或資料夾。
彼此變更發生的時間不超過幾分鐘。
變更是由相同的使用者簽入。
變更有相同的簽入註解。
共用及釘選項目的升級方式
在 Visual SourceSafe 中,可以跨多個資料夾共用檔案。在共用檔案中進行的變更會橫跨共用檔案的資料夾進行複寫。TFS 版本控制沒有同等功能。在升級期間,Visual SourceSafe 專案中的共用檔案是藉由在您用於 TFS 版本控制的伺服器上建立項目的其他獨立複本來進行升級。
TFS 版本控制也沒有任何功能相當於 Visual SourceSafe 中的釘選功能。在升級期間,Visual SourceSafe 專案中的釘選項目會在您用於 TFS 版本控制的伺服器上轉換成加上標籤的項目。如需詳細資訊,請參閱下一章節。
記錄資料的移植方式
Visual SourceSafe 資料庫中項目歷程記錄內的每個事件都會當做變更集傳輸到 Team Foundation Server 上。升級完成之後,您可以在 [記錄] 視窗中檢視此資料。如需詳細資訊,請參閱取得項目的歷程記錄。
資料的某些變更會在升級期間發生。
如何移植有關使用者名稱和時間戳記的資料
當 Visual SourceSafe 資料庫中項目歷程記錄內的每個項目升級至到 Team Foundation Server 上的變更集時,將會發生以下變更:
變更集上的時間戳記會設定為升級項目時的日期和時間。
原始時間戳記會儲存在變更集的 [註解] 欄位中。
使用者名稱會儲存在變更集的 [使用者] 欄位或 [註解] 欄位中 (視使用者對應程序的結果而定)。
注意事項 如果您想要使用者名稱如何指派給記錄資料,則必須使用 VssUpgrade。請參閱指定如何升級使用者名稱。
如何轉換特定類型的事件
事件 (例如編輯、重新命名和刪除) 會以直接的方式從您的 Visual SourceSafe 資料庫升級至 Team Foundation Server 上的變更集中。但是,升級工具轉換某些事件的方式可能不是您所預期的方式,如下表所示。
Visual SourceSafe 事件 |
其升級至 TFS 版本控制的方式 |
---|---|
加入檔案或資料夾 |
此變更集是每個升級檔案及資料夾記錄內的第一個事件。不會針對其所包含之每一個子項目的父代記錄任何事件,與 Visual SourceSafe 不同。 |
分支 |
共用是 Visual SourceSafe 中的分支前置條件,但是 TFS 版本控制不支援共用。因此,升級分支的檔案會在目的資料夾中建立檔案的複本。 Visual SourceSafe 資料庫中的共用檔案會升級到 TFS 版本控制,其方式是複製共用檔案時已存在之檔案的版本,並將該複本放在目的資料夾中。之後,每一個變更集都會在這兩個檔案複本中複寫,直到發生分支事件為止。 |
Label |
隱含標籤的項目:在 Visual SourceSafe 中,當您為資料夾加上標籤時,其包含的項目也會隱含地加上標籤。升級程序會明確為 Team 專案中所有升級的項目加上標籤。 明確標記的檔案:Visual SourceSafe 會在您明確標記個別檔案時,建立檔案的新版本。升級程序會將標籤移植到 TFS 版本控制中的適用版本,但不會建立新的版本。
注意事項
如果您的 Visual SourceSafe 資料庫包含許多會套用到許多檔案的標籤,升級程序的作業時間可能會延長。如果您想要排除此資料,就必須使用 VssUpgrade,並將其設定為忽略標籤。請參閱 <Label migrate="false" />。
|
移動資料夾 |
移動資料夾事件會在 TFS 版本控制中建立資料夾的新版本。 如果您使用的是 VssUpgrade,它只有在同時升級來源資料夾和目的資料夾時,才會升級已移動之資料夾內的完整項目記錄。請參閱檢閱及解決分析功能找到的問題。
注意事項
如果移動資料夾事件與還原事件結合在一起,則可能不會正確升級記錄資料。
|
還原 |
沒有升級任何在還原事件之前產生的記錄資料。 |
PIN 和 UNPIN |
TFS 版本控制不支援釘選功能。升級工具會建立兩個標籤以升級釘選的檔案。 PINNED_LATEST 標籤會套用至固定檔案的固定版本以及未固定檔案的最新版本。而 PINNED 標籤則只會套用至固定檔案的固定版本。升級之後,PINNED_LATEST 標籤會擷取與 Visual SourceSafe 中的 Get Latest 相同的檔案。但是有一個例外,如果在釘選檔案之後發生簽入以外的事件 (例如重新命名或刪除檔案),則 PINNED_LATEST 標籤可能會傳回不同的檔案。 |
共用 |
TFS 版本控制不支援共用功能。Visual SourceSafe 資料庫中的共用檔案會升級到 TFS 版本控制,其方式是複製共用檔案時已存在之檔案的版本,並將該複本放在目的資料夾中。之後,每一個變更集都會在這兩個檔案複本中複寫。 |
取消刪除檔案或資料夾 |
在升級檔案或資料夾的取消刪除事件期間,此工具會重新執行事件,以便在 TFS 版本控制中建立檔案和資料夾的新版本。 升級工具會建立變更集,其中包含檔案或資料夾名稱、取消刪除檔案或資料夾的日期與時間以及使用者名稱。 |
版本控制繫結的移植方式
升級工具會移植每個方案的版本控制繫結。