CVSの日々の作業
CVSを利用した開発では、日々開発者が次の図のような作業を行います。

図1:CVSを利用した日々の作業
まず、CVSサーバからファイルを更新します(1)。そして、ローカルで開発を進め (2)、作業が終わったらCVSサーバにファイルをコミットします(3)。この1〜3を定期的に行います。どのくらいの周期で行うかはプロジェクトにより ますが、定期作業としては毎日行い、誰かが作成したファイルをすぐに利用したければ、随時行う場合もあります。
頻繁にCVSと同期をとっておくことで、複数の人が同じファイルの同じ部分を修正してしまう「競合」をなるべく避けることができます。なお、図では 更新(1)とコミット(3)を順番で行うように書いていますが、実際は、自分の作業中に他の誰かが新しいファイルを追加している場合が多いので、1と3は 同時に行うと考えてもよいでしょう。
同期化
CVSサーバとローカルファイルを比較する作業を同期化といいます。前の説明では 1および3の作業です。パッケージ・エクスプローラーで、プロジェクトを右クリック → チーム → リポジトリーと同期化を選択します。パースペクティブ切り替えのダイアログが表示される場合はOKを選択します(パースペクティブを切り替えずに同期化 ビュー上で作業を行うことも可能です)。

図2:同期化ビュー
同期化ビューでは、ローカルとCVSサーバで内容が異なるファイルが表示されます。同期化 ビューでは、ツールバーのモードを選択することで変更の種類をフィルターすることができます。モードは以下の表のようになっています。なお、 Eclipseのメニュー上では、メニュー名は追加、削除となっていますが、わかりにくいので、ここでは追加 → 着信、削除 → 発信と名前を変えて説明しています。
| モード | 説明 |
|---|---|
| 着信 | CVSサーバで変更のあったファイル (他の誰かが変更したファイル) |
| 発信 | ローカルで変更のあったファイル |
| 着信/発信 | 変更のあったすべてのファイル |
| 競合 | ローカルでもCVSサーバでも変更があったファイル |
表1:モード
同期化ビュー上では、ファイルごとに変更内容がマークで表示されています。マークの意味は次のようになっています。
| マーク(色) | 説明 |
|---|---|
| ←(青) | 着信変更 |
| →(黒) | 発信変更 |
| ←→(赤) | 競合ファイル |
| + | 追加されたファイル |
| − | 削除されたファイル |
| +−なし | ファイル内で変更されたファイル |
表2:マーク
着信変更のファイルを更新(CVSからローカルへ)、発信変更のファイルをコミット(ローカルからCVSへ)していきます。更新、コミットは、それぞれのファイルを右クリックして、更新、コミットを選択することで実行できます。
また、ファイル単位でなく、ディレクトリ単位で一括して更新、コミットを実行できます。特に気にかかるファイルがなければ、ディレクトリを選択し て、一括で更新、コミットすればよいでしょう。自分が担当するパート以外は、イチイチ見るのも手間なので、一括して更新することが多いと思います。
自分の担当に関連する箇所や、変更内容が気になる場合は、ローカルとCVS上のファイルを比較します。これは、同期化ビュー上でファイルをダブルクリックすることで行います。

図3:変更内容の閲覧
(画像をクリックすると別ウィンドウに拡大図を表示します)