更新またはコミットを行っているときに、競合が発生する場合があります。 より最近の改訂がリポジトリー内のブランチで使用可能になっているリソースに対して、ローカルでそのリソースを変更した場合に競合が発生します。 特に、ブランチには、ローカルにあるリソースの基本改訂よりも新しい改訂が含まれています。 このような状態では、以下のいずれか 1 つを実行することができます。
一般には、1 番目と 2 番目のオプションでは作業が失われるという問題があるため、3 番目のオプションをとることになります。
「同期化」ビューには、ブランチで競合しているこれらのリソースが示されます。 特定のリソースが競合している場合、一般には、ローカルでの変更をブランチのリソースでの変更とマージします。
例えば、ローカルで変更している同じ HTML ページを、別のチーム・メンバーも変更しているとします。 「同期化」ビューからそのリソースを開くと、ローカル・リソースとブランチでの改訂の比較が表示されます。 個々の変更を循環しながらマージすることによって、それぞれの変更について、着信変更を受け入れるか、それを拒否するか、あるいはローカルでの変更とマージするかを決定することができます。 マージが終了したら、その変更を保管します。 これは、ローカル・リソースをマージの結果で上書きすることになります。 その後、このマージされたリソースをコミットすることができます。
ヒント: 変更をマージするときに、どのファイルがマージを完了しているか区別できれば便利なことがあります。 ファイルのマージを行っているときに、コンテキスト・メニューから「マージ済みとしてマーク」を選出することができます。 これにより、ファイルの状況が、競合中から、発信変更中に変更されます。
「同期化」ビューで、以下の 2 つのレベルで違いをマージすることができます。
ローカルでの変更を、自分のために自動的にマージさせることも可能です。 ASCII としてマークされたリソースの場合、「チーム」>「更新」を実行すると、ブランチ・リソースとの相違をローカル・リソースに自動的にマージします。 この作業は、競合変更を持つ行がなければうまくいきます。 競合がある場合は、CVS は、ファイルの中に特殊なマークアップを挿入して、これらの行がマージできないことを示します。
「同期化」ビューからの更新では、多少異なる働きをします。 競合の場合、「更新」を使用すると、コンテンツに競合が含まれないファイルのみが処理されます。 コンテンツの競合があるファイルはスキップされ、競合として「同期化」ビューに残されます。
CVS によるチーム・プログラミング
CVS リポジトリーとの同期化
3 方向比較
リポジトリーとの同期化
更新
コミット
ブランチからマージする
リソースの比較
比較エディターの変更内容をマージする
www.cvshome.org: ファイルを最新の状態にする
www.cvshome.org: 競合のサンプル
比較エディター