Visual Source SafeのデータをAzure DevOps Servicesに変換する

## はじめに
VB6全盛の頃から開発しているソフトウェアは、現在でも継続してVisual Source Safeを使っているケースがあると思います。
私も、本当につい先日まで使っていました。今も普通にVSSを使っているプロジェクトもあります。
移行したいけどやり方が分からないからしばらくVSSで、とお考えの方、思い切ってAzure DevOps Servicesに移行してみませんか。
そんな方々のために、VSSからAzure DevOps Servicesへの移行手順をまとめました。

追記 2025年5月13日
2025年5月現在VSS Upgrade WizardからクラウドのAzure DevOps Servicesへ接続できなくなっていることを確認しました。移行先はAzure DevOps Serverのみであることを前提として読み替えをお願いします。

## 事前準備
- Windows 2008 R2 または Windows 7 または Windows 8 または Windows 8.1 または Server 2012。ただし私はServer 2012 R2で実行できました。
- Microsoft SQL Server。Express Edition でもOK。上記PC自身にインストールされていてもいいです。
- 移行プログラムを実行するPCから、移行元VSSも移行先Azure DevOps Servicesもネットワークを介して参照できること。

## 移行手順
1. Team Foundation Servicesで移行先のプロジェクトを作成します。バージョン管理はTeam Foundation Version Controlで作成する。バージョン管理をGitのプロジェクトにVSSを移行しようとすると失敗します。Gitを使いたい人は、Azure DevOps Servicesに取り込んだ後に、TFVCをGitにインポートできるので、その方法でやって下さい。ただし、TFVCからGitへのインポートは180日分のみという制限があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/16e09f5f-1f0d-6349-e355-290dea59334e.png)

1. VSS Upgrade Wizardをインストールします。Visual Studio の Marketplace から［Visual Source Safe Upgrade Tool for Team Foundation Server］をダウンロードして、移行処理を実行するPCにインストールする。
__Visual Source Safe Upgrade Tool for Team Foundation Server__
https://marketplace.visualstudio.com/items?itemName=EdH-MSFT.VisualSourceSafeUpgradeToolforTeamFoundationServer

1. インストールした［VSS Upgrade Wizard］を起動します

1. 移行元であるVisual SourceSafeを指定します。［Visual SourceSafe Repository］に移行元VSSリポジトリのフォルダ名を入力する。移行元VSSリポジトリのフォルダとはsrcsafe.iniがあるフォルダです。フォルダ名入力後［List Availble Projects］をクリックすると、リポジトリ内にあるプロジェクトが一覧表示されるので、移行したいプロジェクトのチェックボックスをチェックします。それらを入力した後、［Next］ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/23def934-09e9-7f3c-293f-1fccc7be0834.png)

1. 移行先チームプロジェクトを選択します。［Browser］ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/a5cf725c-6417-f1ce-38ca-1e482eed1942.png)

1. ［Servers］をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/13dfaa02-91f8-6e57-d86b-5d43fbbc4db1.png)

1. ［Add］をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/dfc92284-671f-e3e7-e6f0-a35e098a198a.png)

1. [Name or URL of Team Foundation Server]にAzure DevOps Services（またはオンプレミスのAzure DevOps Server）のURLを入力し、［OK］ボタンをクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/e9281f33-5b13-8594-43a2-5a02687dfc8c.png)

1. ユーザー名、パスワードなどのログイン情報を要求されるので、入力し、認証する。

1. ［Team Foundation Server list］に新しいサーバーが追加されました。［Close］をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/b1dc8d75-fe83-9578-5792-a3fb3a839de2.png)

1. ［Team Foundation Server］のコンボボックスから、追加したAzure DevOps Servicesを選択すると、プロジェクトの一覧が表示されます。Teamプロジェクトを選択して、［Select Project］ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/6e234ec1-ada5-69b3-a5c1-7149ad7630bf.png)

1. 移行先URLが正しく指定されていることを確認して［Next］をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/e6aecf97-55ce-db59-a534-e5d6e27adbf7.png)

1. [Test]でSQL Serverへ接続できることを確認し、[Next]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/1ec5d104-3707-bebd-e6cc-b601671d4d4b.png)

1. 表示された設定が正しいことを確認して［Next］ボタンをクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/7605ebfc-8c6c-b9f5-991e-7aa7dfa42be6.png)

1. 全てのチェックがパスしていることを確認して［Upgrade］ボタンをクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/49d7e3fd-8c07-23a7-4a95-d6e12bb7f65b.png)

1. 移行完了するまでしばらく待つ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/3b36b2ce-feb2-c960-3b41-788d8c300cbc.png)

1. 移行完了です。この時点でVSSのリポジトリがAzure DevOps Servicesのプロジェクトのリポジトリに移行されています。［Next］ボタンをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/73fd142c-b806-79db-43aa-b47bbf7e3dab.png)

1. ［Close］ボタンをクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/200218/d7138411-f42d-c5e5-b360-a009484ae3a4.png)

以上で、Azure DevOps Servicesへの移行が完了しました。Azure DevOps Servicesのリポジトリを確認してください。できてます。
なお、私はリポジトリを移行した後に、さらにGitへ変換しました。
TFVCからGitへ変換する方法は以下のページに詳しく記載されています。
https://docs.microsoft.com/ja-jp/azure/devops/repos/git/import-from-tfvc?view=azure-devops

以上