更新

ワークベンチ内の 1 つのプロジェクトで作業を行っている間、チームの他のメンバーは、リポジトリー内のそのプロジェクトのコピーに対する変更をコミットすることができます。 これらの変更を入手するには、ワークベンチを「更新」して、ブランチの状態を一致させることができます。 表示される変更は、ワークベンチ・プロジェクトが共用するよう構成されているブランチ固有のものになります。 いつ更新することを選択するかを制御する必要があります。

更新コマンドは 2 つの場所 (「チーム」>「更新」メニュー、または「同期化」ビュー) から出すことができます。 これらの 2 つのコマンドの違いを理解するためには、以下の 3 つの異なる種類の着信変更について知ることが重要です。

「チーム」>「更新」を選択すると、ローカル・リソースの内容が、上記の 3 つのタイプすべての着信変更を使用して更新されます。 非競合および自動マージ可能競合の場合、追加のアクションは必要ありません (自動マージ可能競合では、ユーザーが自動マージを希望しない場合に備えて、変更されたローカル・リソースが「.#」という接頭部のファイルに移動されます)。 ただし、非自動マージ可能競合では、競合は、特別の CVS 固有のマークアップ・テキストを使用してローカル・リソースとマージされるか (ASCII ファイルの場合)、または変更されたローカル・リソースが「.#」という接頭部のファイルに移動されます (バイナリー・ファイルの場合)。 これは、CVS のコマンド行の振る舞いと一致しますが、Eclipse の自動ビルド・メカニズムと組み合わせた場合に問題となる可能性があります。 また、多くの場合、ローカル・リソースを更新する前に、どんな着信変更があるかを知っておくことは必要です。 これらの問題は、「同期化」ビューで指摘されます。

着信モードで「同期化」ビューを開くには、以下のようにします。

  1. 「ナビゲーション」ビューで、更新したいリソースを選択します。
  2. 選択されたリソースのポップアップ・メニューから、「チーム」>「リポジトリーと同期化」を選択します。 「同期化」ビューが開きます。
  3. 「同期化」ビューのツールバーで「着信モード」ボタンをクリックして、変更されたワークベンチ・リソース (発信変更) があれば、それをフィルターに掛けて除外します。

着信モードでは、自分が最後に更新したので、ブランチにコミットした変更を見ることができます。 ビューには、それぞれの着信変更のタイプが示されます。 異なるタイプの競合を扱うために、「更新」と「オーバーライドおよび更新」という 2 つの更新コマンドがあります (ビュー内の任意のリソースのコンテキスト・メニューから使用可能です)。 「同期化」ビューで「更新」コマンドを選択した場合、選択された着信 および自動マージ可能の競合変更がすべて処理されるのに対し、自動マージ可能でない競合は更新されません (正常に処理されたファイルは、すべてビューから除去されます)。 「オーバーライドおよび更新」コマンドは競合に対して動作し、 ローカル・リソースをリモート・コンテンツで置換します。 この「置換」の振る舞いが、望ましいものであることはめったにありません。 代替方法について、後で説明します。

非競合および自動マージ可能のファイルを更新するには、以下のようにします。

  1. 「同期化」ビューの上部にある「構造体の比較」ペインには、着信変更を持つリソースの階層が含まれています。
  2. すべての競合ファイルを選択し、ポップアップ・メニューから「更新」を選択します。 これにより、着信変更または自動マージ可能競合のいずれかである選択されたリソースが更新され、 それらのリソースがビューから除去されます。 内容が自動マージ可能でない競合はビューに残されます。

ローカルのワークベンチに、ブランチからの着信変更がある、自動マージ可能でない発信変更が含まれている場合は、「オーバーライドおよび更新」を実行する代わりに、以下のように、その違いを手操作でワークベンチにマージすることができます。

  1. 「構造体の比較」ペインで、リソース・リストに競合 (赤色の矢印で表されます) があれば、(ダブルクリックするか、またはコンテキスト・メニューから「比較エディターで開く」を選択して) それを開きます。
  2. 比較エディターの「テキストの比較」エリアでは、ローカルのワークベンチ・データが左側に表示され、 リポジトリー・ブランチ・データが右側に表示されます。 この 2 つの間の違いを調べてください。
  3. テキスト比較エリアを使用して、変更があればマージします。 ファイルのリポジトリー改訂からの変更を、ファイルのワークベンチ・コピーにコピーして、 マージされたワークベンチ・ファイルを保管することができます (左のペインにあるポップアップ・メニューを使用します)。
  4. ローカル・ファイルへのリモート変更のマージが完了したら、「同期化」ビューのポップアッ プ・メニューから「マージ済みとしてマーク 」を選択します。 これにより、ローカル・ファイルは更新済みとしてマークが付けられ、その変更をコミットすることができます。

注: リポジトリーの内容は、更新したときには変更されません。 着信変更を受け入れると、これらの変更がワークベンチに適用されます。 リポジトリーは、発信変更をコミットした場合にのみ変更できます。

ヒント: 「同期化」ビューで、1 組の着信変更の祖先を選択すると、その操作が すべての該当する子で実行されます。 例えば、最上位のフォルダーを選択して「更新」を選択すると、着信および自動マージ可能 の競合変更がすべて処理され、その他の着信変更は処理されないまま残されます。

重要: 上記で説明した「オーバーライドおよび更新」コマンドの振る舞いは、「同期化」ビューの着信モードにのみ適用されます。 このビューの「着信/発信モード」では、着信変更と競合の振る舞いは同じですが、このコマンドは、 発信変更をリポジトリーの内容に戻してしまいます。 このコマンドを着信/発信モードで実行するときは、十分に注意してください。

関連概念
CVS によるチーム・プログラミング
CVS リポジトリーとの同期化

関連タスク
コミット
競合の解決
リソースの比較
バージョン管理ライフ・サイクル: リソースの追加および無視

関連参照
CVS
「同期化」ビュー