2 つのファイルの競合を解決する
Team Foundation バージョン管理を使用してファイルを管理する利点は、ソースコード ファイルなど 1 つの資産について複数のユーザーが同時に作業できることです。 ただし、同じファイルで同時に作業できるということは、競合を解決する必要が生じる場合もある、ということを意味します。
次の操作のいずれかを実行しようとすると、競合が発生する可能性があります。
ファイルの取得またはチェックイン。ワークスペースのバージョンとサーバー上のバージョンの間に競合が発生する可能性があります。
ある分岐から別の分岐へのマージ。ソース分岐のファイル バージョンとターゲット分岐のファイル バージョンの間に競合が発生する可能性があります。
tf rollback コマンドを使用したロール バック操作。現在のバージョンのファイルと作成しようとしているバージョンの間に競合が発生する可能性があります。
操作を完了しようとしたときに競合が発生してフラストレーションを感じることがありますが、Team Foundation バージョン管理には、競合の原因を把握できる情報を確認する機能や、競合の解決に使用できるツールが用意されています。 多くの場合、[すべてを自動解決] や [自動マージ] などの自動操作を使用すると、競合をすぐに解決できます。
この記事の内容
表示される競合の管理
競合の詳細情報
競合の解決
必要なアクセス許可
これらの手順を実行するには、ソース パス内の項目の [読み取り] のアクセス許可と、ターゲット パス内の項目の [チェックアウト] のアクセス許可が [許可] に設定されている必要があります。 ターゲット パス内の項目の名前を変更する場合は、ソース パスとターゲット パスの両方の [チェックアウト] のアクセス許可が [許可] に設定されている必要があります。 ロックを扱う場合は、[ロック] のアクセス許可が [許可] に設定されている必要があります。 詳細については、「Team Foundation Server のアクセス許可」を参照してください。
表示される競合の管理
実行する操作が 1 つまたは複数の競合によってブロックされると、[保留中の変更] ウィンドウの [競合] チャネルが自動的に表示されます。 既定では、実行しようとした最後の動作によって発生した競合のみが表示されます。 ウィンドウがこの状態になると、"パス フィルターが適用されました…" から始まるメッセージが表示されます。
また、ワークスペースですべての保留中の変更をブロックしているすべての競合を表示することもできます。その場合は、次の手順を実行します。
ワークスペースのすべての競合を表示するには
[保留中の変更] ウィンドウが開いていない場合は、[表示] メニューの [その他のウィンドウ] をクリックし、[保留中の変更] をクリックします。
[競合] をクリックします。
[すべての競合を取得] をクリックします。
このボタンをクリックすると、"合計 n 個の競合…" で始まるメッセージが表示されます。
ワークスペースでファイルを変更してから長時間が経過すると、その間に新しい競合が発生する場合があります。 [保留中の変更] ウィンドウを更新して新しい競合を確認できます。この場合、次の手順を実行します。
[保留中の変更] ウィンドウを更新するには
[保留中の変更] ウィンドウが開いていない場合は、[表示] メニューの [その他のウィンドウ] をクリックし、[保留中の変更] をクリックします。
[競合] をクリックします。
[更新] をクリックします。
競合の詳細情報
競合を解決する前に、競合の原因となったファイルの変更内容について詳細情報を確認することもできます。
競合の詳細情報を確認するには
[保留中の変更] ウィンドウの [競合] チャネルを表示します (詳細については、「表示される競合の管理」を参照してください)。
確認しようとする競合を探して選択します。
選択した競合に表示される情報を確認します。 競合の種類によってはリンクが表示されます。このリンクをクリックすると詳細情報が表示されます。
(省略可能) 次のいずれかの手順を実行します。
[履歴] をクリックしてファイルの履歴を表示します。 競合の原因となった操作がマージまたはロール バックの場合、[履歴] の右にあるメニュー コントロールをクリックし、[ソースの履歴] または [ターゲットの履歴] を選択します。
[注釈] をクリックすると、変更者、変更日時など、ファイルの最新バージョンに加えられたすべての変更について詳細が表示されます。
[比較] の右にあるメニュー コントロールをクリックし、コマンドを選択します。
実行する操作
選択するコマンド
確認する内容
ファイルのチェックインまたは取得
[ローカル バージョンをサーバー バージョンと比較]
ワークスペースのコピーと、サーバー上の最新バージョンを比較します。
[ローカル バージョンを元のバージョンと比較]
ワークスペースのコピーと、チェックアウトしたサーバー上のバージョンを比較します。
[サーバー バージョンを元のバージョンと比較]
サーバー上の最新バージョンと、チェックアウトしたバージョンを比較します。
ファイルのマージ
[ソースをターゲットと比較]
マージのソースのバージョンとマージのターゲットのバージョンを比較します。
[ソースを基本バージョンと比較]
マージのソースのバージョンと、ソースとターゲット間でマージが発生したときの最新バージョンを比較します。
[ターゲットを基本バージョンと比較]
マージのターゲットのバージョンと、ソースとターゲット間でマージが発生したときの最新バージョンを比較します。
ファイルのロール バック
[ソースをターゲットと比較]
削除するバージョンの直前のファイル (ソース) と、ワークスペースでロール バックするバージョンのファイル (ターゲット) を比較します。
[ソースを基本バージョンと比較]
削除するバージョンの直前のファイル (ソース) と、削除する変更を含むバージョンのファイル (基本バージョン) を比較します。
[ターゲットを基本バージョンと比較]
ワークスペースでロール バックするバージョンのファイル (ターゲット) と、削除する変更を含むバージョンのファイル (基本バージョン) を比較します。
競合の解決
Team Foundation バージョン管理には、実行しようとして操作をブロックされる競合を解決するために使用できる複数のツールがあります。
競合を解決する方法を選択するには
次の表を確認し、使用する方法をクリックします。
解決方法
説明
すべての競合の自動解決
すべての競合の解決が試行されます。 システムで使用するヒューリスティックの一部を除外することもできます。
個々の競合の自動マージ
1 の競合の解決が試行されます。 システムで使用するヒューリスティックは除外できません。
個々の競合の手動解決
競合を解決する操作を手動で選択します。
すべての競合を自動解決するには
[保留中の変更] ウィンドウの [競合] チャネルを表示します (詳細については、「表示される競合の管理」を参照してください)。
[すべてを自動解決] をクリックし、次のオプションのいずれかを選択します。
すべてのヒューリスティックを使用して競合を自動的に解決する場合、[すべての競合の種類] を選択します。
一部のヒューリスティックを除外して競合を解決する場合、[特定の競合の種類] を選択します。
[解決する競合の選択] ダイアログ ボックスが表示されます。 有効にするヒューリスティックをオンにし、無効にするヒューリスティックをオフにし、[自動マージ] をクリックします。 詳細については、「AutoResolve 解決オプションの指定」を参照してください。
[保留中の変更] ウィンドウに表示される競合は、自動的に解決が試行されます。 自動解決できなかった競合はウィンドウに残ります。この競合は手動で解決する必要があります。
1 つの競合を自動マージするには
[保留中の変更] ウィンドウの [競合] チャネルを表示します (詳細については、「表示される競合の管理」を参照してください)。
解決する競合を探して選択します。
ヒント
複数の競合を選択するには、Ctrl キーまたは Shift キーを押しながら競合を選択します。
[自動マージ] をクリックします。
注意
[自動マージ] が無効な場合、この競合は手動で解決する必要があります。
1 つの競合を手動で解決するには
[保留中の変更] ウィンドウの [競合] チャネルを表示します (詳細については、「表示される競合の管理」を参照してください)。
解決する競合を探して選択します。
ヒント
複数の競合を選択するには、Ctrl キーまたは Shift キーを押しながら競合を選択します。
選択した競合内で、競合を解決するときに使用できる操作が表示されます。 表示される操作は競合の種類や、競合の原因となった操作によって変わります。
競合を解決する操作を選択します。