S-JIS[2004-03-10/2005-06-26]

Eclipse2でCVS


コンフリクト

他人が同じソースの同じ箇所を修正した場合、CVSの華(!?)であるコンフリクト(衝突)が発生して、そのままではコミットはおろか更新も出来なくなる。[2004-06-09]

コンフリクトが起こること自体はCVSとして当然のことなんだけど、Eclipse2の場合、このエラーが分かりにくい。
更新作業中に「サーバーが追加情報を提供しませんでした」という内容の「更新の実行中に問題が発生しました」ダイアログが出た場合、コンフリクトが発生している可能性が高い。

こんなメッセージじゃコンフリクトって分からないよね

どのファイルで発生したかまでは表示してくれないので、別途エラーが起きている箇所を探す必要がある。
まずはコンフリクトを疑い、検索で「<<<<<」や「=====」や「>>>>>」を探してみるのがよさそう。

もしくは同期化で競合(衝突)が起きているファイルだけ表示するとか。


kオプションの設定・変更

CVSのkオプションを指定することにより、ファイルをテキストとして扱うかバイナリーとして扱うかを決めることが出来る。[2004-06-29]
ちょっと特殊な拡張子のファイルだと、テキストであるにもかかわらず(デフォルトで)バイナリーとして扱われてしまうことがある。バイナリーの場合、更新時にマージされず、リポジトリー側の内容で上書きされてしまう。


デフォルトのkオプションはファイルの拡張子毎に決まっており、以下の手順で追加変更できる。[2005-06-26]

  1. メニューバーの「ウィンドウ(W)」→「設定(P)」
  2. 左ペインで「チーム」⇒「ファイル・コンテンツ」
  3. 右ペインで「追加(A)」を押し、拡張子を入力する。

ファイル毎にkオプションを変更するには、以下のようにする。

  1. パッケージ・エクスプローラーの中で 変更したいファイルを右クリックしてポップアップメニューを出す。
  2. 「チーム(E)」→「ASCII/バイナリー・プロパティーの変更(H)」を選択 する。(「キーワード置換の設定」ダイアログが開く)
    1. 変更したいモード(バイナリー(-kb)とか、テキスト(-kkv)とか)をラジオボタンで選び、「次へ」ボタン
    2. 選択したファイルが下方の「次のファイルは選択済みで、すでにリポジトリーで共有されています(T)」に表示されているが、そうであっても上部の「すでにリポジトリーで共有されているファイルを含める(I)」にチェックを入れる。で「次へ」ボタン
    3. コミットコメントを入力して「次へ」ボタン
    4. 「ファイルのロケーション」でファイルが選択されていることを確認して「終了」

これにより、kオプションがコミットされてリポジトリーに記録される。
ただし、その後に他の人が更新を行っても、kオプションがその人のローカルに反映されない

更新ローカルのkオプションに従って行われる。(ローカルがバイナリーなら、バイナリ扱い)
コミットローカルのkオプションに従う。ただし、リポジトリーのkオプションが書き換えられることはない

置換(HEADから最新)を行っても、ローカルのkオプションは変わらない
一旦ファイルを削除し、そのファイルをリポジトリーから復帰させる(ディレクトリごと置換を行う)と、kオプションもリポジトリーのものに変わる。


既存ファイルでなく、新規のファイルのkオプションを指定しておきたいときは、コミット前にkオプションを変更しておく。[2004-09-08]

  1. パッケージ・エクスプローラーの中で 変更したいファイルを右クリックしてポップアップメニューを出す。
  2. 「チーム(E)」→「バージョン管理に追加(A)」
  3. 「チーム(E)」→「ASCII/バイナリー・プロパティの変更(H)」
    ダイアログが開き、途中でコミットコメントの入力を求められるが、ここでは実際にはコミットされない。
  4. (その後、実際にコミット

現在のkオプションを確認するには、以下のようにする。

  1. パッケージ・エクスプローラーの中で 確認したいファイルを右クリックしてポップアップメニューを出す。
  2. 「プロパティー(R)」を選択(「プロパティー」ダイアログが開く)
  3. 左ペインで「CVS」を選択する。

すると、ダイアログの右ペインにCVS関連の情報が表示される。

項目 値の例 説明
変更 はい ローカルに変更がある(コミット前)
いいえ ローカルに変更がない
キーワード・モード バイナリー(-kb) バイナリー
キーワード拡張のあるASCII(-kkv) テキスト($DATE$といったCVSキーワードを展開する)
タグ ヘッド タグブランチの状態

Eclipse3へ行く / 技術メモへ戻る
メールの送信先:ひしだま