第2章 協同作業
2.1. Concurrent Versions System (CVS)
2.1.1. CVS のインストールおよび設定
cvs パッケージのインストール
root
として、シェルプロンプトで以下のコマンドを入力します。
yum
install
cvs
デフォルトのエディターの設定
cvs import
または cvs commit
など、特定のコマンドでは短いログメッセージを記述する必要があります。cvs クライアントアプリケーションはまず環境変数 $CVSEDITOR
のコンテンツを読み込み、次に、より一般的な環境変数 $EDITOR
を読み込み、どのテキストエディターを起動するかを決定します。どちらの変数も指定されていない場合には、vi が起動します。
$CVSEDITOR
の値を永続的に変更する場合は、以下のコマンドを実行します。
echo
"export
CVSEDITOR=command
" >>~/.bashrc
export CVSEDITOR=command
の行を ~/.bashrc
に追加します。command は、任意のエディターを実行するコマンドに置き換えます (例: emacs
)。現在の shell セッションで、この変更を有効にするには、シェルプロンプトで以下のコマンドを入力して ~/.bashrc
のコマンドを実行する必要があります。
.
~/.bashrc
例2.1 デフォルトのテキストエディターの設定
~]$echo "export CVSEDITOR=emacs" >> ~/.bashrc
~]$. ~/.bashrc
2.1.2. 新規リポジトリーの作成
空のリポジトリーの初期化
cvs
-d
pathinit
/var/cvs/
)。または、$CVSROOT
の環境変数の値を変更して、このパスを指定することもできます。
export
CVSROOT=path
cvs init
やその他の CVS 関連のコマンドの実行時にパスを省略することができます。
cvs
init
例2.2 新規 CVS リポジトリーの初期化
~/cvs/
ディレクトリーに空の CVS リポジトリーを作成するには、以下を入力します。
~]$export CVSROOT=~/cvs
~]$cvs init
リポジトリーへのデータのインポート
cvs
[-d
cvs_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=~/cvs
myproject]$cvs import -m "Initial import." project mycompany init
N project/Makefile N project/AUTHORS N project/LICENSE N project/TODO N project/INSTALL...
2.1.3. 作業コピーのチェックアウト
cvs
-d
cvs_repositorycheckout
module
project
) である点に注意してください。また $CVSROOT
の環境変数は以下のように設定できます。
export
CVSROOT=cvs_repository
-d
オプションなしで cvs checkout
コマンドを使用することもできます。
cvs
checkout
module
例2.4 作業コピーのチェックアウト
~/cvs/
があり、このリポジトリーにproject
という名前のモジュールが含まれていると仮定します。このモジュールの作業コピーをチェックアウトするには、以下を入力します。
~]$export CVSROOT=~/cvs
~]$cvs checkout project
cvs checkout: Updating project U project/AUTHORS U project/INSTALL U project/LICENSE U project/Makefile U project/TODO
2.1.4. ファイルの追加および削除
ファイルの追加
cvs
add
file…
cvs commit
コマンドを実行します。
例2.5 CVS リポジトリーへのファイルの追加
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src TODO
ChangeLog
以外のファイルとディレクトリーはすべてリビジョンが管理されています。このファイルを CVS リポジトリーに追加するようにスケジュールするには、以下を入力します。
project]$ cvs add ChangeLog
cvs add: scheduling file `ChangeLog' for addition
cvs add: use 'cvs commit' to add this file permanently
ファイルの削除
rm
file…
cvs
remove
file…
cvs commit
コマンドを実行します。
例2.6 CVS リポジトリーからのファイルの削除
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src TODO
TODO
ファイルを CVS リポジトリーから削除するようにスケジュールするには、以下を入力します。
project]$rm TODO
project]$cvs remove TODO
cvs remove: scheduling `TODO' for removal cvs remove: use 'cvs commit' to remove this file permanently
2.1.5. 変更の表示
ステータスの表示
cvs
status
Up-to-date
、Locally Added
、Locally Removed
または Locally Modified
) およびリビジョンなど、リビジョン管理が行われるファイルごとに詳細情報が表示されます。ただし、作業コピーの変更内容だけを確認するには、シェルプロンプトで以下を入力して、出力を簡素化することができます。
cvs
status
2>/dev/null
|grep
Status:
|grep
-v
Up-to-date
例2.7 作業コピーのステータスの表示
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src
ChangeLog
以外の)、すでにリビジョン管理がされています。リビジョン管理がされている 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
差異の表示
cvs
diff
[file…]
例2.8 作業コピーへの変更の表示
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src
Makefile
にはローカルでの変更が含まれます。これらの変更を表示するには以下を入力します。
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. 変更のコミット
cvs
commit
[-m
"commit message"]
例2.9 CVS リポジトリーへの変更のコミット
project]$ ls
AUTHORS ChangeLog CVS doc INSTALL LICENSE Makefile README src
ChangeLog
は 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
done
2.1.7. 作業コピーの更新
cvs
update
例2.10 作業コピーの更新
project]$ ls
AUTHORS CVS doc INSTALL LICENSE Makefile README src TODO
ChangeLog
を追加し、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 src
2.1.8. その他のリソース
インストールされているドキュメント
- cvs(1) — cvs クライアントプログラムの man ページでは、使用方法に関する詳しい情報が提供されます。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。