例¶
以下のシナリオは、一意性検出機能を有効にすることが重要な理由を示した例です。
一意性検出が有効になっています。
ジョンはデータベース
DB1
で、スコットはデータベースDB2
で作業をしています。いずれのデータベースも、VCS リポジトリ内の同じデータベースにリンクしています。
いずれのデータベースも現在同じ状態であり、以下のエレメントが格納されています。
F1
という名前のフォルダF2
という名前のフォルダF1
内に配置されているDS1
という名前のデータソースF1
内に配置されているV1
という名前のビュー
すべてのエレメントが最新の状態で、ローカル変更はありません。
ジョンが
V1
をF2
に移動して、変更をチェックインします。スコットが
V1
を変更して、変更をチェックインします。Virtual DataPort は、
V1
の異なるバージョン間で一意性の競合が生じたことを検出します。一方はF1
に配置されていて、ローカル変更が加えられたバージョンであり、もう一方は、現在はF2
に配置されているリモートバージョンです。スコットは強制的にチェックインしたので、
V1
は再びF1
に配置され、独自の変更が含まれています。
ジョンは
V1
を変更します。このビューはジョンのデータベースDB1
ではまだフォルダF2
にあります。ジョンはデータベースをチェックアウトします。Virtual DataPort は、
V1
の異なるバージョン間で一意性の競合が生じたことを検出します。一方はF2
に配置されていて、ローカル変更が加えられたバージョンであり、もう一方は、現在はF1
に配置されているリモートバージョンです。ジョンは強制的にチェックアウトしたので、
V1
は現在F1
に配置され、スコットが前回実行したチェックインに対応する変更が含まれています (ジョンは強制的にチェックアウトした後に、自身のローカル変更が失われることに同意)。
注釈
手順 3 で、Virtual DataPort は移動を検出し、この移動が安全である場合でも、ジョンにチェックインの確認を求めます。現在、これは一意性検出機能の既知の制限事項となっています。エレメントの移動では常に、変更のチェックイン時に明示的な確認が求められます。