次の方法で共有


履歴イベントの移行方法

更新 : 2007 年 11 月

ここでは、Visual SourceSafe で記録された履歴イベントがどのように Team Foundation に移行されるかについて説明します。

履歴イベント

履歴イベントは、Team Foundation の同等の区分に移行されます。これにより、ソース ファイルの履歴を維持できます。ファイルのバージョンの履歴は、履歴を作成したイベントを再生することにより作成されます。それぞれの履歴イベントがどのように移行されるかを次の表に示します。

イベント

移行方法

ファイルまたはフォルダの追加

ファイル追加イベントでは、ファイルの最初のバージョンが Team Foundation に作成されます。フォルダ追加イベントでは、フォルダの最初のバージョンが Team Foundation に作成されます。フォルダを追加したときにその下にファイルまたは他のフォルダがある場合、これらのファイルおよびフォルダは別々に追加されます。 

ファイルの編集

ファイル編集イベントでは、ファイルの新規バージョンが Team Foundation に作成されます。

ファイルのラベル付け 

Team Foundation では、ファイルまたはフォルダのバージョンにラベルを適用します。Visual SourceSafe では、明示的または暗黙的にファイルにラベルを付けることができます。Visual SourceSafe で明示的にファイルにラベル付けした場合、そのファイルの新しいバージョンが作成され、そのラベルを取得すると、前のバージョンのファイルに対応する内容が取得されます。明示的なラベルを移行するために、コンバータは Visual SourceSafe のラベル付けされたバージョンに対応する Team Foundation のバージョンにラベルを適用します。ただし、これは新しいバージョンは作成しません。

Visual SourceSafe でフォルダのラベルを適用すると、そのフォルダの下にあるすべてのファイルおよびフォルダに暗黙的にラベルが適用され、新しいバージョンは作成されません。暗黙的なラベルの場合、フォルダの明示的なラベルを移行するときに Team Foundation 内の対応するバージョンが自動的にラベル付けされるため、コンバータは何も行いません。

フォルダのラベル付け

Visual SourceSafe では、フォルダにラベルを適用すると、そのフォルダの下にあるすべてのファイルとフォルダが暗黙的にラベル付けされ、新しいバージョンは作成されません。これらのフォルダを移行する際、コンバータは Team Foundation 内の対応するバージョンのフォルダにラベルを適用します。これは、ラベル付けされたフォルダ内部にあるファイルとフォルダの現在のバージョンに自動的にラベルを適用します。

ファイルまたはフォルダの名前変更、削除、または削除取り消し

ファイルまたはフォルダの名前変更、削除、および削除取り消しイベントを移行する際、コンバータはそのイベントを再生して、ファイルとフォルダの新しいバージョンを Team Foundation に作成します。

フォルダの移動

フォルダ移動イベントでは、フォルダの新規バージョンが Team Foundation に作成されます。Visual SourceSafe では、移動コマンドによってフォルダの内容や履歴は変更されませんが、代わりに古い親フォルダと新しい親フォルダの履歴に記録されます。フォルダを移動すると、Visual SourceSafe は古いバージョンの親フォルダを再構築できなくなります。

フォルダの移動イベントのこの移行方法によって、移行した後で古いバージョンを再構築できるようになります。たとえば、サブフォルダ /B を持つフォルダ $/A にラベル "LABEL1" を適用した後、別のフォルダ $/C に /B を移動したとします。Visual SourceSafe で $/A の "LABEL1" の取得を実行すると、$/A/B は取得されません。しかし、Team Foundation に移行した後、そのラベルの取得を実行すると、移動したフォルダ ($/A/B) が取得されます。

移動したフォルダを移行する場合、次の 3 種類の移行方法に応じて、それぞれ結果が異なります。

  • 移動元フォルダと移動先フォルダの両方を移行。データは失われません。前の例では、移動元の $/A フォルダと移動先の $/C フォルダの両方を移行します。

  • 移動先フォルダのみを移行。移行した後にフォルダを移動すると、そのフォルダは移動先フォルダに追加されたように表示されます。移動したフォルダの履歴と移動前にそれに含まれていた項目は、Team Foundation に移行されません。前の例では、/B サブフォルダの移動イベントは、フォルダの追加イベントとして $/C に表示されます。履歴が消失するのを防ぐには、移動したフォルダの移動元フォルダと移動先フォルダの両方を移行します。移動の分析を実行すると、このデータが失われることを警告するセクションがレポートに表示されます。

  • 移動元フォルダのみを移行。移行時には、移動したフォルダの履歴とその中の項目は Team Foundation に移行されません。履歴が失われるのを防ぐには、移動対象の Visual SourceSafe フォルダの移動元フォルダと移動先フォルダの両方を一緒に移行してください。移動の分析を実行すると、このデータが失われることを警告するセクションがレポートに表示されます。

ms253166.alert_note(ja-jp,VS.90).gifメモ :
フォルダの移動イベントと復元イベントが組み合わされると、履歴が正しく移行されない可能性があります。

ファイルの共有

Visual SourceSafe では、1 つのファイルを複数のフォルダ間で共有できます。共有ファイルに対して行った変更は、それを共有している各フォルダにレプリケートされます。内部的には、Visual SourceSafe は共有ファイル間にソフト リンクを作成します。技術的には、Visual SourceSafe はフォルダを共有しません。Visual SourceSafe でフォルダを共有すると、フォルダのコピーが作成され、そのフォルダ内のすべてのファイルが共有されます。

Team Foundation には、これと同等の共有機能がありません。共有ファイルは、共有を開始したときのファイルのバージョンと同じ内容のバージョンを移行先フォルダに作成することにより移行されます。これ以降に共有ファイルに対して行われる変更は、コンバータによって両方の場所にレプリケートされます。

ファイルの共有および削除

共有した後で削除されたファイルは、削除後のすべての操作を無視する場合を除き、共有ファイルとして処理されます。

削除した共有ファイルを後で削除取り消しすると、移行中に、編集や名前変更などの各操作に対してコンバータがエラーを報告します。ただし、削除取り消し操作の移行時には、Visual SourceSafe で削除が取り消されたファイルと同じ内容になるように、コンバータがファイルの削除取り消し編集を実行します。

削除した後で共有ファイルの名前を変更すると、名前変更の操作を移行しているときにコンバータがエラーを報告します。名前を変更した後の操作は移行されないため、コンバータがそれぞれの操作に対してエラーを報告します。

ファイルの分岐

共有は分岐の前提条件になります。コンバータは、Visual SourceSafe の分岐を Team Foundation バージョン管理の分岐に対応付けることができません。共有ファイルを移行すると、移行先フォルダにそのファイルのレプリカが作成されます。分岐イベントの移行は、共有ファイルに対して行った変更が両方の場所にレプリケートされなくなることを意味します。したがって、いずれかの分岐に加えられた変更は、Team Foundation 内の該当するコピーに移行されます。移行レポートには、Visual SourceSafe で共有または分岐されているファイルを格納したフォルダが一覧表示されます。

アーカイブ

Visual SourceSafe でファイルまたはフォルダをアーカイブするとき、ファイルやフォルダの履歴を完全に削除するか、ファイルやフォルダの履歴からいくつかのバージョンを削除することができます。履歴を削除した場合、コンバータは削除されたバージョンを移行できません。コンバータはアーカイブ イベントを無視します。

復元

Visual SourceSafe で復元を行うと、アーカイブされたファイルまたはフォルダの履歴が復元されます。コンバータは、ファイルまたはフォルダの復元された履歴を移行します。コンバータは復元イベントを無視します。

固定および固定解除

Team Foundation バージョン管理は固定をサポートしません。このため、固定されたファイルはすべて、次の 2 つのラベルを作成することにより移行されます。PINNED_LATEST ラベルは、固定されたファイルの固定されたバージョンおよび固定解除されたファイルの最新バージョンに適用されます。PINNED ラベルは、固定されたファイルの固定されたバージョンに対してのみ適用されます。移行後、PINNED_LATEST ラベルにより、Visual SourceSafe の Get Latest と同じファイルが取得されます。ただし、ファイルを固定した後で、ファイルの名前変更やファイルの削除などチェックイン以外のイベントが発生した場合、PINNED_LATEST ラベルで異なるファイルが返されることがあります。

参照

概念

コンバータがパフォーマンス向上のために変更セットをグループ化する方法

その他の技術情報

ソース管理の移行計画