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