第2章 協同作業
2.1. Concurrent Versions System (CVS)
2.1.1. CVS のインストールおよび設定
cvs パッケージのインストール
root として、シェルプロンプトで以下のコマンドを入力します。
yuminstallcvs
デフォルトのエディターの設定
cvs import または cvs commit など、特定のコマンドでは短いログメッセージを記述する必要があります。cvs クライアントアプリケーションはまず環境変数 $CVSEDITOR のコンテンツを読み込み、次に、より一般的な環境変数 $EDITOR を読み込み、どのテキストエディターを起動するかを決定します。どちらの変数も指定されていない場合には、vi が起動します。
$CVSEDITOR の値を永続的に変更する場合は、以下のコマンドを実行します。
echo"exportCVSEDITOR=command" >>~/.bashrc
export CVSEDITOR=command の行を ~/.bashrc に追加します。command は、任意のエディターを実行するコマンドに置き換えます (例: emacs)。現在の shell セッションで、この変更を有効にするには、シェルプロンプトで以下のコマンドを入力して ~/.bashrc のコマンドを実行する必要があります。
.~/.bashrc
例2.1 デフォルトのテキストエディターの設定
~]$echo "export CVSEDITOR=emacs" >> ~/.bashrc~]$. ~/.bashrc
2.1.2. 新規リポジトリーの作成
空のリポジトリーの初期化
cvs-dpathinit
/var/cvs/)。または、$CVSROOT の環境変数の値を変更して、このパスを指定することもできます。
exportCVSROOT=path
cvs init やその他の CVS 関連のコマンドの実行時にパスを省略することができます。
cvsinit
例2.2 新規 CVS リポジトリーの初期化
~/cvs/ ディレクトリーに空の CVS リポジトリーを作成するには、以下を入力します。
~]$export CVSROOT=~/cvs~]$cvs init
リポジトリーへのデータのインポート
cvs[-dcvs_repository]import[-m"commit message"] module vendor_tag release_tag
project)、vendor_tag と release_tag はベンダーとリリースタグを指す点に注意してください。
例2.3 CVS リポジトリーへのプロジェクトのインポート
~]$ ls myproject
AUTHORS doc INSTALL LICENSE Makefile README src TODO~/cvs/ に空の CVS リポジトリーがあるとします。このリポジトリーの project に、ベンダータグ mycompany と、リリースタグ init を付けて、プロジェクトをインポートするには、以下を実行します。
myproject]$export CVSROOT=~/cvsmyproject]$cvs import -m "Initial import." project mycompany initN project/Makefile N project/AUTHORS N project/LICENSE N project/TODO N project/INSTALL...
2.1.3. 作業コピーのチェックアウト
cvs-dcvs_repositorycheckoutmodule
project) である点に注意してください。また $CVSROOT の環境変数は以下のように設定できます。
exportCVSROOT=cvs_repository
-d オプションなしで cvs checkout コマンドを使用することもできます。
cvscheckoutmodule
例2.4 作業コピーのチェックアウト
~/cvs/ があり、このリポジトリーにproject という名前のモジュールが含まれていると仮定します。このモジュールの作業コピーをチェックアウトするには、以下を入力します。
~]$export CVSROOT=~/cvs~]$cvs checkout projectcvs checkout: Updating project U project/AUTHORS U project/INSTALL U project/LICENSE U project/Makefile U project/TODO
2.1.4. ファイルの追加および削除
ファイルの追加
cvsaddfile…
cvs commit コマンドを実行します。
例2.5 CVS リポジトリーへのファイルの追加
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src TODOChangeLog 以外のファイルとディレクトリーはすべてリビジョンが管理されています。このファイルを CVS リポジトリーに追加するようにスケジュールするには、以下を入力します。
project]$ cvs add ChangeLog
cvs add: scheduling file `ChangeLog' for addition
cvs add: use 'cvs commit' to add this file permanentlyファイルの削除
rm file…cvsremovefile…
cvs commit コマンドを実行します。
例2.6 CVS リポジトリーからのファイルの削除
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src TODOTODO ファイルを CVS リポジトリーから削除するようにスケジュールするには、以下を入力します。
project]$rm TODOproject]$cvs remove TODOcvs remove: scheduling `TODO' for removal cvs remove: use 'cvs commit' to remove this file permanently
2.1.5. 変更の表示
ステータスの表示
cvsstatus
Up-to-date、Locally Added、Locally Removed または Locally Modified) およびリビジョンなど、リビジョン管理が行われるファイルごとに詳細情報が表示されます。ただし、作業コピーの変更内容だけを確認するには、シェルプロンプトで以下を入力して、出力を簡素化することができます。
cvsstatus2>/dev/null|grepStatus:|grep-vUp-to-date
例2.7 作業コピーのステータスの表示
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README srcChangeLog 以外の)、すでにリビジョン管理がされています。リビジョン管理がされている TODO ファイルは、削除のスケジューリングがされており、この作業コピーはすでに存在しません。最後に Makefile にはローカルの変更内容が含まれます。このような作業コピーのステータスを表示するには、以下を入力します。
project]$ cvs status 2>/dev/null | grep Status: | grep -v Up-to-date
File: ChangeLog Status: Locally Added
File: Makefile Status: Locally Modified
File: no file TODO Status: Locally Removed差異の表示
cvsdiff[file…]
例2.8 作業コピーへの変更の表示
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README srcMakefile にはローカルでの変更が含まれます。これらの変更を表示するには以下を入力します。
project]$ cvs diff
cvs diff: Diffing .
cvs diff: ChangeLog is a new entry, no comparison available
Index: Makefile
===================================================================
RCS file: /home/john/cvs/project/Makefile,v
retrieving revision 1.1.1.1
diff -r1.1.1.1 Makefile
156c156
< -rm -f $(MAN1)
---
> -rm -f $(MAN1) $(MAN7)
cvs diff: TODO was removed, no comparison available
cvs diff: Diffing doc...2.1.6. 変更のコミット
cvscommit[-m"commit message"]
例2.9 CVS リポジトリーへの変更のコミット
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README srcChangeLog は CVS リポジトリーへの追加がスケジューリングされており、Makefile はすでにリビジョン管理がされ、ローカルの変更が含まれます。また、リビジョンが管理されている TODO ファイルは削除するようにスケジューリングされており、作業コピーには存在しません。CVS リポジトリーにこれらの変更をコミットするには、以下を入力します。
project]$ cvs commit -m "Updated the makefile."
cvs commit: Examining .
cvs commit: Examining doc...
RCS file: /home/john/cvsroot/project/ChangeLog,v
done
Checking in ChangeLog;
/home/john/cvsroot/project/ChangeLog,v <-- ChangeLog
initial revision: 1.1
done
Checking in Makefile;
/home/john/cvsroot/project/Makefile,v <-- Makefile
new revision: 1.2; previous revision: 1.1
done
Removing TODO;
/home/john/cvsroot/project/TODO,v <-- TODO
new revision: delete; previous revision: 1.1.1.1
done2.1.7. 作業コピーの更新
cvsupdate
例2.10 作業コピーの更新
project]$ ls
AUTHORS CVS doc INSTALL LICENSE Makefile README src TODOChangeLog を追加し、TODO ファイルを削除し、さらに Makefile に変更を加えたと仮定します。この作業コピーを更新するには、以下を入力します。
myproject]$ cvs update
cvs update: Updating .
U ChangeLog
U Makefile
cvs update: TODO is no longer in the repository
cvs update: Updating doc
cvs update: Updating src2.1.8. その他のリソース
インストールされているドキュメント
- cvs(1) — cvs クライアントプログラムの man ページでは、使用方法に関する詳しい情報が提供されます。

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.