SVNからTFSへの移行
SVN2TFSツールsvn2tfs.codeplex.comを使用すると、SubversionリポジトリからTFSサーバーにすべての変更セットを転送できます。 このツールは非常にシンプルで使いやすいです:
![](https://habrastorage.org/storage/habraeffect/c8/22/c82202a7413db651368e9340fa21f4db.png)
リポジトリのSVN URLとインポート元のパスを指定し、TFSの詳細を指定します。 唯一の小さな困難は、ユーザーマッピングファイルの準備です。
これを行うには、インポート操作の前に「SVNの検証」ボタンをクリックすると、ユーティリティはSVNリポジトリ内のすべてのユーザーの完全なリストを表示します。 すべてのユーザーは、次の形式でTFSユーザーと特定の方法で相関させる必要があります。
![](https://habrastorage.org/storage/habraeffect/e7/d8/e7d855b751af39a3b5f2638b38dff0c7.png)
TFSにインポートすると、コメント付きのファイルの変更履歴全体が表示されます。
![](https://habrastorage.org/storage/habraeffect/cf/08/cf08c8ae2e60d4b9d9f35218913a0798.jpg)
このようなインポートでは、2つのポイントを考慮する必要があります。 最初-TFSの変更の日付は実際のものであり、元のリポジトリに保存されている日付ではありません。 TFSは現在の時刻の実際のチェックイン日を取得するため、実行することはありません。 2番目の重要な点は、svn externalsのサポートです。 TFSには同様のメカニズムはありません。現時点で推奨できるのは、ブランチを使用してそのようなものを整理することです。
TFS Subversionの作成
移行後、古いSVNクライアントを新しいTFSサーバーに接続する必要があります。 しかし、たとえばVisual Studioだけでなく、さまざまなクライアントが存在する環境がある場合はどうでしょうか。 おそらく、TFSを接続するための拡張機能はありません。 したがって、このようなクライアントの場合、すべてをそのままにして、TFSで動作しますが、同時にSVNで動作すると見なします。
これには、SvnBridgeユーティリティsvnbridge.codeplex.comが役立ちます。 サーバーアーカイブをサイトからダウンロードし、c:\ svnbridgeディレクトリに解凍して、IIS 7.0でアプリケーションを作成します。
![](https://habrastorage.org/storage/habraeffect/9f/d7/9fd7cbed06799ddc297fbe776b55ef00.png)
TFSサーバーのアドレスを指定して、このアプリケーションのWeb.Configも構成することを忘れないでください。
![](https://habrastorage.org/storage/habraeffect/39/63/3963ec50fb9cc7e19a14f32e42ca4f6d.png)
ほとんどの場合、残りの設定はデフォルトのままになります。 どこでも間違いを犯していない場合は、ブラウザを使用してSvnBridgeの機能を簡単に確認できます。 TFSでプロジェクトのリストが表示されます。
![](https://habrastorage.org/storage/habraeffect/a5/4f/a54f298188ff173380a63f818b04426a.png)
別のオプションは、本質的にローカルサーバーである「クライアント」svnbridgeを使用することです。 起動後のこのユーティリティは、起動の開始時に示されたポートのトレイに置かれ、SVN形式からのすべての要求をTFSサーバーに転送します。
本質的に、これはSubversionサーバーを使用した開発者の作業を継続するのに十分です。 使用したクライアントのサーバーアドレスのみを再構成する必要があります。 すべての主要なSVNプロトコルコマンドがサポートされています。
![](https://habrastorage.org/storage/habraeffect/c1/17/c117e771004c9bce76da5f1ba49061f8.jpg)
おわりに
ご覧のとおり、SVNからTFSへの移行は難しくありません。SvnBridgeのようなユーティリティを使用すると、TFSを使用できないクライアントのソースコードを引き続き使用することができます。 この機能は、さまざまなプラットフォーム用の異種システムを作成し、さまざまなクライアントと開発環境を使用できる開発者グループにとって特に興味深いものです。 同時に、チームは、ソースコードと作業項目、タスクとバグ管理、ビルドサブシステム、分析、および他の多くの開発ライフサイクル管理機能との関係を構成できるTFSのすべての機能を取得します。