了解 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 版本控制中建立檔案和資料夾的新版本。 升級工具會建立變更集,其中包含檔案或資料夾名稱、取消刪除檔案或資料夾的日期與時間以及使用者名稱。 |
版本控制繫結的移植方式
升級工具會移植每個方案的版本控制繫結。