如何利用VSSConvert 工具將 VSS 2005 移轉至 TFS 2010
移轉工具本身是還蠻單純的
備份、分析、設定對應關係、移轉
四個步驟就可以將移轉的動作完成
這個工具只有支援 VSS 2005 的版本,也就是說 VSS 6 要用的話!需要自行升至 VSS 2005
另外,最花時間的絕對不是移轉的動作,反而是確認所有相關的 source code 是否都是正確的
是否有垃圾檔案在裡面?還是說結構是否正確等等…
至於怎麼評估移轉的方法和對應關係,這會跟每個團隊目前的做法有相當的影響。
那麼是誰要用這些 Tool 來轉呢?
這裡比較推薦,平常 VSS 都有人在定期維護且保持乾淨
而且,目錄結構在移轉後也不會太大的出入、專案數量多且有貼 Label 的話。
是可以考慮用 VSSConvert
當然在做任何一切事情之前,一定要先備份!
忘記在那裡??可以開啟 VSS Explorer 的 File –> Open SourceSafe Database 中就可以看到了
接下來我們就可以開始分析 VSS 資料庫是否有任何的損壞?
"C:\Program Files (x86)\Microsoft Visual SourceSafe\analyze.exe" -f -v4 c:\vssdb\data
參數 f 代表要做自動修復錯誤, v4 則是代表顯示較完整的訊息
分析的資料會儲存在 c:\VSSDB\Data\Backup\
若是有任何的錯誤都要排除
下載 HotFix 並安裝,若是沒有的話則會出現下列的錯誤
http://code.msdn.microsoft.com/KB950185/Release/ProjectReleases.aspx?ReleaseId=1123
VS80-KB947647-X86-INTL.exe
接下來就可以決定要將那些的目錄移轉到 TFS 2010 上面。
接下來就要進行目錄的分析,以確定在移轉的過程中是否有問題
請 Copy 以下的 XML 並建立對應檔
<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting>
<Source name="VSS">
<VSSDatabase name="c:\VSSDB"></VSSDatabase>
</Source>
<ProjectMap>
<Project Source="$/ATM"></Project>
</ProjectMap>
</ConverterSpecificSetting>
<Settings>
<Output file="Analysis.xml"></Output>
</Settings>
</SourceControlConverter>
建立至 C:\VSS2TFS\Setup.xml 並存檔
在同一個目錄中執行以下指令
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\VSSConverter.exe" analyze Setup.xml
結束後在目錄中就會建立相關的檔案,若是在自已的環境中是改成有 AD 的話,請修改 UserMap
沒有太大問題接下來就開始「正式移轉」啦!
首先,請先認確 TFS 的 Team Project 是否存在
把 setup.xml 加上紅色的區段後,另存成 setupmigration.xml
請先用 Copy 的方式,避免不小心打錯或是 大小寫弄錯。造成悲劇
<?xml version="1.0" encoding="utf-8"?>
<SourceControlConverter>
<ConverterSpecificSetting>
<Source name="VSS">
<VSSDatabase name="c:\VSSDB"></VSSDatabase>
</Source>
<ProjectMap>
<Project Source="$/ATM" Destination="$/ATM"></Project>
</ProjectMap>
</ConverterSpecificSetting>
<Settings>
<TeamFoundationServer name="VSS2TFS" port="8080" protocol="http" collection="tfs/DefaultCollection"></TeamFoundationServer>
<Output file="Analysis.xml"></Output>
</Settings>
</SourceControlConverter>
Tip:記得在執行前要把 Analysis.xml 的檔案改名 或 刪除
正式移轉請執行下面的指令
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\VSSConverter.exe" migrate setupmigration.xml
這個的資訊在「工具移轉」的時候一定會遇到的,因為該 sln 的 版控還是指向原來的 VSS
可以參考 MSDN 的 繫結和解除繫結專案及方案 http://msdn.microsoft.com/zh-tw/library/ms181375.aspx
開啟 TFS Explorer 後可以看到 ATM 多了目錄,查一下歷史記錄後也會出現 之前 VSS 的記錄內容
連同 Label 也是會一併轉進來的。同時也會把目前最新的版本貼上 Label
這樣子就完成 1 個專案的移轉動作
ps.. 若是 VSS 6 升上 VSS 2005 的話!所有的異動都會是一個 Change set ,而且也不會有 Label 。