=begin
= cvs による deepconv ソース開発の手引き
* 小高正嗣
* 2005/06/14 (小高正嗣) 新規作成
=end
=begin HTML
=end HTML
=begin
この文書は cvs を用いた deepconv ソース開発の手引である.
日常の開発作業を行う上で必要なコマンドを解説する.
* ((<開発ホストでの作業: 基本編>))
* ((<準備>))
* (())
* (())
* (())
* (())
* (())
* (())
* ((<開発ホストでの作業: ブランチ編>))
* ((<ブランチソースの checkout>))
* ((<ブランチソースの commit>))
* ((<ブランチソースの update>))
* ((<ブランチソースの add>))
* ((<ブランチソースの remove>))
* ((<ブランチソースの tag>))
* ((<開発ホストでの作業: マージ編>))
* ((<準備>))
* ((<ブランチの変更をトランクへ反映させる>))
* ((<トランクの変更をブランチへ反映させる>))
* ((<参考文献>))
== 開発ホストでの作業: 基本編
=== 準備;
* cvs がインストールされているかどうかを確認.
* 環境変数 CVSROOT を以下のように指定する.
$ export CVSROOT=/GFD_Dennou_Club/ftp/arch/deepconv/cvsroot
リモート環境で行う場合は
$ export CVS_RSH=ssh
$ export CVSROOT=username@dennou-k.gfd-dennou.org:/GFD_Dennou_Club/ftp/arch/deepconv/cvsroot
とする.
=== checkout
cvsroot から当該モジュールを展開する場合, 作業ディレクトリにおいて
$ cvs checkout (プロジェクト名)
とする(これははじめの 1 回だけ).
これにより src 以下のファイルが作成される.
=== commit
はじめに環境変数 CVSEDITOR を指定しておく.
$ export CVSEDITOR="emacs -nw"
変更内容を cvsroot に反映させる場合, arare0/ ディレクトリ内で
$ cvs commit
とする. CVSEDITOR で指定したエディタが起動されるので, コメントを書く.
コメントの書き方は (()) にしたがうこと.
日本語入力は euc コードを使うこと(後述の ((<コミットメッセージの漢字コード設定>)) を参照).
=== update
作業領域に展開しているモジュールを最新版にそろえる場合, arare0/ ディレクトリ内で
$ cvs update
とする.
=== add
新たにファイルを追加作成した場合,
$ cvs add newfile
$ cvs commit newfile
add した後 commit を忘れないこと.
ディレクトリを追加する場合には commit はいらない.
=== remove
ファイル/ディレクトリを削除する場合,
$ cvs remove -f delfile
$ cvs commit
=== tag
一日の作業が終わったら必ずタグを貼る.
$ cvs tag '(プロジェクト名)-YYYYMMDD'
タグの付け方については
((<"dcmodel 2007/07/18 付けメモ"|URL:/library/dcmodel/memo/2007-07-18_morikawa_meeting.htm>)) および
((<"モデルプロジェクト CVS タグ付けの手引"|URL:http://www.gfd-dennou.org/library/dcmodel/doc/TEBIKI.dcmodel-cvstag-rule.htm>)) および
を参照する.
== 開発ホストでの作業: ブランチ編
=== ブランチソースの checkout
本線(トランク)ソースのチェックアウト + update コマンドで行う.
$ cvs checkout (プロジェクト名)
$ cvs update -r (ブランチタグ名)
ブランチからトランクに戻るには
$ cvs update -A
とする.
一度 update -r すると update -A しないかぎりブランチのソースツリーで
の作業となるので注意すること.
2005/06/14 現在, arare3 におけるブランチタグ名は
arare3j 木星テスト版
arare3m 火星テスト版
の 2 つである.
以下ではブランチのソースツリーで作業していることを仮定する.
=== ブランチソースの commit
トランクソースの場合と同様に行う. (()) を参照.
=== ブランチソースの update
$ cvs update -r (ブランチタグ名)
とする.
=== ブランチソースの add
トランクソースの場合と同様に行う. (()) を参照.
=== ブランチソースの remove
トランクソースの場合と同様に行う. (()) を参照.
=== ブランチソースの tag
トランクソースの場合と同様に行う. (()) を参照.
== 開発ホストでの作業: マージ編
ここではトランクとブランチ, ブランチ間でのソースの統合(マージ)の手順に
ついて解説する. この作業はトランクと複数のブランチに共通のファイルのバ
グを修正する場合などで必要となる.
=== 準備
まず自分の作業するソースツリーがトランクなのかブランチなのかを確認する.
トランクで作業するなら
$ cvs updata -A
ブランチで作業するなら
$ cvs updata -r (ブランチタグ名)
とする.
=== ブランチの変更をトランクへ反映させる
ブランチ (arare3j) の変更をトランク (arare3) に反映させる場合の手順は,
以下の通りである.
$ cvs tag arare3j-20050614 (arare3j ソースにタグを貼る)
$ cvs update -A (arare3 ソースに移る)
$ cvs diff -c -r arare3j-20050614 <ファイル名> (差分をチェック)
$ cvs update -j arare3j-20050614 <ファイル名> (変更点を反映させファイル更新)
$ cvs commit <ファイル名> (arare3 へ commit)
ファイル名を省略すると作業ディレクトリ以下の全てのファイルについて,
差分のチェックとファイル更新, commit を行うことになる.
=== トランクの変更をブランチへ反映させる
トランク (arare3) の変更をブランチ (arare3j) に反映させる場合の手順は,
((<ブランチの変更をトランクへ反映させる>))場合の手順と同様である.
$ cvs tag arare3-20050614 (arare3 ソースにタグを貼る)
$ cvs update -r arare3j (arare3j ソースに移る)
$ cvs diff -c -r arare3-20050614 <ファイル名> (差分をチェック)
$ cvs update -j arare3-20050614 <ファイル名> (変更点を反映させファイル更新)
$ cvs commit <ファイル名> (arare3j へ commit)
ブランチ間 (arare3j, arare3m) の変更を反映させる場合の手順も同様である.
== 参考文献
* 石渡正樹, 森川靖大, 塚原大輔, 杉山耕一朗, 2005:「CVS に関するメモ」,
((<"http://www.gfd-dennou.org/arch/cc-env/cvs/"|URL:http://www.gfd-dennou.org/arch/cc-env/cvs/>))
* Takuya NISHIMOTO,「バージョン管理システム CVS を使う」
((<"http://www-vox.dj.kit.ac.jp/nishi/cvs/cvs.html"|URL:http://www-vox.dj.kit.ac.jp/nishi/cvs/cvs.html>))
* cvs 付属ドキュメント
((<"/usr/doc/cvs/html-info/"|URL:/usr/doc/cvs/html-info/>))
* Karl Fogel 著, でびあんぐる 監訳, 竹内里佳 訳
「CVS - バージョン管理システム」, オーム社
=end