ワークベンチ内の 1 つのプロジェクトで作業を行っている間、チームの他のメンバーは、リポジトリー内のそのプロジェクトのコピーに対する変更をコミットすることができます。 これらの変更を入手するには、ワークベンチを「更新」して、ブランチの状態を一致させることができます。 表示される変更は、ワークベンチ・プロジェクトが共用するよう構成されているブランチ固有のものになります。 いつ更新することを選択するかを制御する必要があります。
更新コマンドは 2 つの場所 (「チーム」>「更新」メニュー、または「同期化」ビュー) から出すことができます。 これらの 2 つのコマンドの違いを理解するためには、以下の 3 つの異なる種類の着信変更について知ることが重要です。
「チーム」>「更新」を選択すると、ローカル・リソースの内容が、上記の 3 つのタイプすべての着信変更を使用して更新されます。 非競合および自動マージ可能競合の場合、追加のアクションは必要ありません (自動マージ可能競合では、ユーザーが自動マージを希望しない場合に備えて、変更されたローカル・リソースが ".#" という接頭部のファイルに移動されます)。 ただし、非自動マージ可能競合では、競合は、特別の CVS 固有のマークアップ・テキストを使用してローカル・リソースとマージされるか (ASCII ファイルの場合)、または ".#" という接頭部のファイルに移動されます (バイナリー・ファイルの場合)。 これは、CVS のコマンド行の動作と一致しますが、Eclipse の自動ビルド・メカニズムと組み合わせた場合に問題となる可能性があります。 また、ローカル・リソースを更新する前に、どんな着信変更があるかを知りたいことはあまりありません。 これらの問題は、「同期化」ビューで指摘されます。
着信モードで「同期化」ビューを開くには、以下のようにします。
着信モードでは、自分が最後に更新したので、ブランチにコミットした変更を見ることができます。 ビューには、それぞれの着信変更のタイプ (非競合、自動マージ可能競合、または非自動マージ可能競合) が示されます。 異なるタイプの競合を扱うために、「リポジトリーから更新」と「オーバーライドおよび更新」という 2 つの更新コマンドがあります (ビュー内の任意のリソースのコンテキスト・メニューから使用可能です)。 「同期化」ビューで「リポジトリーから更新」を選択した場合、非競合変更だけが処理され、自動マージ可能競合または非自動マージ可能競合のファイルはビュー内にそのまま残されます (正常に処理されたファイルは、すべてビューから除去されます)。 「オーバーライドおよび更新」コマンドは、2 つのタイプの競合を操作します。 このコマンドを選択した後、マージが試行される前にプロンプトが出され、内容を自動マージしたいか、それともリポジトリー・ファイルで上書きするかどうかが尋ねられます。 自動マージを選択すると、自動マージ可能競合だけが処理され、着信変更がローカル変更と自動的にマージされます。 そうでない場合は、すべての競合が処理され、ローカル・リソースがリモートの内容で置き換えられます。 「置換」の動作が希望されることはめったにありません。 代替方法について、後で説明します。
非競合および自動マージ可能のファイルを更新するには、以下のようにします。
ローカルのワークベンチに、ブランチからの着信変更がある、自動マージ可能でない発信変更が含まれている場合は、「オーバーライドおよび更新」を実行する代わりに、以下のように、その違いを手操作でワークベンチにマージすることができます。
注: リポジトリーの内容は、更新したときには変更されません。 着信変更を受け入れると、これらの変更がワークベンチに適用されます。 リポジトリーは、発信変更をコミットした場合にのみ変更できます。
ヒント: 「構造体の比較」ペインで、1 組の着信変更の祖先を選択すると、その操作がすべての該当する子で実行されます。 例えば、最上位のフォルダーを選択して「リポジトリーから更新」を選択すると、すべての非競合の着信変更が処理され、その他の着信変更は処理されないまま残されます。
重要: 上記で説明した「オーバーライドおよび更新」コマンドの動作は、「同期化」ビューの着信モードにのみ適用されます。 ビューの「着信 / 発信モード」では、着信変更と競合の動作は同じですが、このコマンドは、発信変更をリポジトリーの内容に戻してしまいます。 このコマンドを発信 / 着信モードで実行するときは、十分に注意してください。
CVS によるチーム・プログラミング
CVS リポジトリーとの同期化化