10/31にTFS Serviceが正式稼働になり、URLもtfspreview.comからhttp://tfs.visualstudio.com/になりました。Visual StudioはURL単位でTFSのワークスペースを認識するので、通常ならこういう手順になるでしょうか。
- 全部チェックイン状態にする
- 新しいURLでTFSのサーバー接続する
- ワークスペースを作成して、新しくマッピングし直し
ワークスペースを作り直すと、再度ソースのダウンロードが始まるので面倒です。ということで、レジストリを強引に書き換えてしまう方法が紹介されています。
Regularly Expressing on .NET: Updating your Team Foundation Service Uri to the new tfs.visualstudio.com
PowerShellでわずか3行。HKEY_CURRENT_USERのレジストリ書き換えなので、特権昇格は不要ですね。
Visual StudioのURLの一部がワイルドカードになっているのは一台にインストールされているVisual Studioが複数バージョンあるためです。
Get-ItemProperty -Path HKCU:\Software\Microsoft\VisualStudio\*\TeamFoundation\Instances\*.tfspreview.com Uri | %{set-itemproperty -Path $_.PSPath Uri -Value ( $_.Uri -Replace ".tfspreview.com/", ".visualstudio.com/" )}
Get-ItemProperty -Path HKCU:\Software\Microsoft\VisualStudio\*\TeamFoundation\Instances\*.tfspreview.com\Collections\* Uri | %{set-itemproperty -Path $_.PSPath Uri -Value ( $_.Uri -Replace ".tfspreview.com/", ".visualstudio.com/" )}
Get-ChildItem -Path HKCU:\Software\Microsoft\VisualStudio\*\TeamFoundation\Instances\*.tfspreview.com | Rename-Item -NewName { $_.PSChildName -Replace ".tfspreview.com$", ".visualstudio.com" }
紹介したBlog作者によると、tfコマンドなどの(正式にサポートされた)ツールでできないか探したけど、わからなかったので、レジストリ書き換えに走ったようです。私も早速書き換えましょう。
もちろんオンプレミス版のTFSでも同じことなので、サーバー変更の際は同じ手順が使える…でしょう(その際はPowerShellのURLの部分をなおしてね)。