新ツール : TFS to TFS Migration Tool
どのような要望があり、なぜこのツールが生まれたのでしょうか。
ご存知のとおり、TFS には、ソース コード、変更履歴、タスク、バグ、履歴データなど、アプリケーション開発に関するライフサイクル データが大量に蓄積されます。TFS クライアント ツールを使用すると、それらのデータを TFS との間で円滑にやり取りできます。ただし、それだけでは対応できない状況も多々あります。
まず、"レガシ システム" に関連する状況として、次のような質問が寄せられています。
- 「現在、私はシステム X を使用していますが、TFS を導入したいと思っています。ソース コードやバグなどを、履歴と一緒にシステム X から TFS へ移行することはできますか」
- 「私の会社では以前にシステム X に統一したのですが、新しいプロジェクトではぜひ TFS を使いたいと思っています。TFS を使用しつつ、データ (ソースや作業項目など) をすべて元のシステムに保存することはできますか」
- 「私の会社では IT ヘルプ デスクの管理にシステム Y を使用していますが、これにどうしても開発用の問題追跡システムを接続したいのです。どうすれば実現できますか」
このような要望に応えるために、TFS Migration & Synchronization Toolkit が作成されました。このツールキットでは、TFS と他のシステムとの間に片方向または双方向の相互運用性を提供するツールを作成できます。このツールキットを基盤として、私たちはパートナーと協力しながら、特定のシステム向けのツールも開発しています。Team Foundation Server Migration Tool for Rational® ClearCase® はその 1 つです。
一方で、他の製品との相互運用性とは関係のない要望も寄せられています。それは次のようなものです。
- 「TFS サーバー上のプロジェクトを別のサーバーへ移動したいのですが、どうすればよいですか」
- これに関係して、「2 つの TFS サーバーを統合したいのですが、どうすればよいですか」
- 「バングラデシュとニューヨークにサーバーが 1 台ずつありますが、それらを結ぶネットワークが不安定です。各サーバーにすべてのデータのローカル コピーを置き、ネットワーク接続を確立できたときに相互にレプリケートすることはできますか」
- その他の関連する要望
このような要望の中には、長期的に見て、製品で直接サポートするのが最良と考えられるシナリオもあります。それについては、Rosario リリースで対応していく予定です。ただし、上記のシナリオは、先に述べた "システム X" を別の TFS サーバーに置き換えた状況とほとんど同じであることに気付きました。そこで、当面の対応策として TFS to TFS Migration Tool が生まれました。
このツールは CodePlex から入手でき、ソース コードも公開されています (直前のリンクを参照してください)。このツールでは、次の操作を行うことができます。
- 片方向の移行 : ある TFS サーバーのプロジェクトから別の TFS サーバーのプロジェクトへ、TFS のソース コードと作業項目を移行する。
- 双方向の同期 : 2 つのサーバー上のプロジェクト間で、TFS のソース コードと作業項目を同期する。
ただし、あまり期待しすぎないでください。これは完璧なソリューションではありません。このアプローチには制限があり、ここで紹介したすべての状況に適しているとは限りません。以下に、このツールを使用する場合に考慮する必要のある主な問題を挙げておきます。
- このツールで実行できる処理は、バージョン管理項目と作業項目、およびそれらの間のリンクをコピーすることだけです。レポート、チーム ビルドの履歴、SharePoint コンテンツ、チーム プロジェクトのその他の部分は、処理の対象にはなりません。
- 作業項目 ID と変更セット ID は、コピー先のプロジェクトでは常に新しい ID になります。このため、バグの説明などで ID を参照している場合、混乱が生じる可能性があります。リンクには新しい変更セットの ID が反映されます。
- このツールを使用した場合、コピー先ではタイムスタンプが変わります。作業項目の作成日時やバージョン管理の操作日時 (追加、編集、削除、分岐、マージなど) は、すべて移行の実行日時に変更されます。このため、特に一度に大量のデータを移行すると、時間の範囲を基準とするレポートに影響が生じます。双方向の同期を定期的に行う場合は、それほど大きな影響はありません。
- バージョン管理項目の移行は厄介です。これは仕方がありません。というのも、TFS で操作が実行されるとき、すべての情報が保存されるわけではなく、変更が項目セットに追加された順序は記録されません。これらの操作を移行ツールで "再生" しようとしても、実行されたコンテキストの情報が十分ではないために、自動では正しく移行できない場合があります。結果として、操作の順序が複雑な場合などは、自動的な移行処理を続ける前に、手動作業が必要になることがあります。
このツールは、ここで紹介した状況に対応するために役立つだけでなく、もう 1 つの点でも価値があります。つまり、TFS Migration Toolkit を使用して、TFS を他のシステムと正確に統合するツールを作成する方法を示す絶好のサンプルでもあるのです。ツールキットが最初にリリースされてから今まで、このようなサンプルは用意されていませんでした。
このツールは既にいくつかの企業で使用され、上記のような状況を解決に導いています。ただし、まだ未熟なツールであるため、何の問題もなく動作するとは考えないでください。ソース コードを公開しているので、ご自分で調べることもできます。問題が生じた場合は、CodePlex プロジェクト サイトをとおしてご連絡いただければ、できる限りのサポートをいたします。
このツールがお役に立つことを願っています。成否にかかわらず、どのような結果になったかをお知らせいただけるとさいわいです。
Brian
投稿 : 2007 年 11 月 16 日 (金) 10:16 AM bharry
分類 : Visual Studio Team System, TFS
Brian Harry さんのブログ - https://blogs.msdn.com/bharry/archive/2007/11/16/a-new-tfs-to-tfs-migration-tool.aspx より。
この翻訳については、Brian Harry さんのご了承を得ています。