内容紹介
バージョン管理システムCVSとオープンソース開発のベストセラー解説書が改名改訂!
CVS(Concurrent Versions System)は、ソフトウェアのバージョンを管理するためのシステムで、分散開発プロジェクトやドキュメント管理を強力に支援します。特に、ネットワーク上で多数の開発者が共同作業を行うオープンソースプロジェクトでは必須とも言えるツールとなっています。
本書は、CVSの基本的な使い方から、ブランチの管理やCVSサーバーの構築・管理までをカバーしており、丁寧なチュートリアルと全機能の完全なリファレンスを提供します。さらに、CVSと関連の深いオープンソースソフトウェアの開発手法についても、経験者の視点から豊富なノウハウを提供します。プログラマはもちろん、ドキュメントやウェブコンテンツの管理を合理化したいと考えている人にとっても、本書はきっと役に立つことでしょう。
このような方におすすめ
プログラマ(プラットフォームや言語を問わない)
プロジェクトマネージャ
オープンソース開発に興味のある人
目次
主要目次
第1章 オープンソース開発とCVSの関係
第2章 CVSの概要
第3章 CVSリポジトリ管理
第4章 CVSの高度な機能
第5章 ヒントとトラブルシューティング
第6章 ビルド、テスト、リリース
第7章 CVSを使ったシステム管理
第8章 オープンソースプロセス
第5章 分散開発の設計
第10章 CVSで使用できるサードパーティ製ツール
第11章 完全CVSリファレンス
詳細目次
目次
著者紹介
謝 辞
日本語版監訳者より
はじめに
■第1章 オープンソース開発とCVSの関係
◆1.1 フリーソフトウェアとは何か
1.1.1 オープンソースソフトウェア
1.1.2 オープンソースライセンス
1.1.3 オープンソースビジネスモデル
◆1.2 すべての始まり
1.2.1 Stallmanの考え
1.2.2 2種類の開発
◆1.3 CVSとの関係
1.3.1 diffとpatch
1.3.2 RCS
1.3.3 勝者:CVS
◆1.4 オープンソース開発の原則とそれに役立つCVSの機能
◆1.5 フリーソフトウェアの原動力
1.5.1 必要性
1.5.2 仲間
1.5.3 名誉
1.5.4 お金
1.5.5 派閥は強さの表れ
■第2章 CVSの概要
◆2.1 CVSの基本
2.1.1 CVSは何でないか:ロック-修正-ロック解除モデル
2.1.2 CVSとは何か:コピー-修正-マージモデル
◆2.2 その他のバージョン制御システム
2.2.1 Microsoft VSS
2.2.2 RCSとGNU/RCS
2.2.3 SCCS
◆2.3 CVSでの1日の作業
2.3.1 CVSを起動する
2.3.2 リポジトリへのアクセスと作業環境
2.3.3 新規プロジェクトを開始する
2.3.4 作業用コピーをチェックアウトする
2.3.5 変更を加える
2.3.6 自分(および他人)の作業内容を調べる:updateとdiff
2.3.7 CVSと暗黙的な引数
2.3.8 コミットする
2.3.9 誰が何をやったか調べる(ログメッセージを表示する)
2.3.10 変更内容を調べて元に戻す
◆2.4 その他の便利なCVSコマンド
2.4.1 ファイルを追加する
2.4.2 ディレクトリを追加する
2.4.3 ファイルを削除する
2.4.4 ディレクトリを削除する
2.4.5 ファイルとディレクトリの名前を変更する
2.4.6 オプションの入力疲れを防ぐ
◆2.5 スナップショットを入手する(日付とタグ)
2.5.1 使用できる日付形式
2.5.2 特定の時点にマーク(タグ)を付ける
◆2.6 ブランチ
2.6.1 ブランチからトランクへ変更をマージする
2.6.2 複数のマージ
2.6.3 作業用コピーなしでタグまたはブランチを作成する
■第3章 CVSリポジトリ管理
◆3.1 管理者の役割
◆3.2 CVSの入手とインストール
3.2.1 UNIX用のCVSを入手してビルドする
3.2.2 Windows用のCVSを入手してインストールする
3.2.3 Macintosh用のCVSを入手してインストールする
3.2.4 Windows版とMacintosh版の制限
◆3.3 CVSディストリビューションの中身
3.3.1 情報ファイル
3.3.2 サブディレクトリ
3.3.3 その他の情報源
◆3.4 リポジトリの開始
3.4.1 パスワード認証サーバー
3.4.2 リポジトリ構造の詳細
3.4.3 RCS形式では@記号が常にクォートされる
3.4.4 ファイルを削除すると何が起こるか
3.4.5 CVSROOT/管理用ディレクトリ
◆3.5 その他の情報
■第4章 CVSの高度な機能
◆4.1 基本事項を超えて
◆4.2 電話代わり
4.2.1 「watch」:誰がいつ何をするかを知る
4.2.2 ログメッセージとコミットメール
4.2.3 作業用コピーを削除する
◆4.3 プロジェクトヒストリの鳥瞰図
4.3.1 望遠鏡を使った鳥瞰図:annotateコマンド
◆4.4 キーワード展開の使用
◆4.5 ブランチの使いこなし方
4.5.1 トランクに何度もマージする
4.5.2 蟻継ぎ方式:両方向にマージする
4.5.3 トビウオ方式:簡単な方法
4.5.4 サードパーティソースを追跡する:ベンダーブランチ
◆4.6 CVSの新機能
◆4.7 専門家の領域へようこそ
■第5章 ヒントとトラブルシューティング
◆5.1 問題が起きたら
◆5.2 一般的な原因
5.2.1 作業用コピー管理領域
5.2.2 リポジトリアクセス権
◆5.3 一般的な問題とその解決法
5.3.1 実際に起きた問題と解決法
5.3.2 変わり行く状況
■第6章 ビルド、テスト、リリース
◆6.1 なぜリリースするのか
◆6.2 リリース作業の開始
6.2.1 「コードの詰め込み」効果を避ける
6.2.2 凍結
6.2.3 開発と安定したブランチ
◆6.3 テスト
6.3.1 テスターの採用と維持
6.3.2 テストの自動化
◆6.4 ビルド、インストール、パッケージ化
6.4.1 ビルドとインストール:makeとautoconf
6.4.2 CVSにパッケージ化を手伝わせる
◆6.5 リリース
6.5.1 変更内容を公開する
6.5.2 リリースをCVSに記録する:タグとリビジョン番号
◆6.6 その他の情報
■第7章 CVSを使ったシステム管理
◆7.1 システム管理者の主な仕事
7.1.1 CVSの正しい使い方:バージョン管理
7.1.2 依存ファイル
7.1.3 namedツリー
7.1.4 後退テスト
◆7.2 CVSを使ったシステム管理者のその他の作業
7.2.1 新しいターゲットを作成する
7.2.2 ファイルに関する責任を委任する
7.2.3 ホストに問題が起きたら
◆7.3 ルーターと機器の管理
◆7.4 まとめ
■第8章 オープンソースプロセス
◆8.1 失敗と成功
◆8.2 プロジェクトの開始
8.2.1 便利なものができたらリリースする
8.2.2 パッケージ
8.2.3 プログラムを発表する
◆8.3 プロジェクトの運営
8.3.1 技術的な判定力を養う
8.3.2 誰が保守担当者になるか
8.3.3 グループによる統治
8.3.4 どうしても必要な場合の分岐方法
8.3.5 保守担当者を変える
8.3.6 停止状態
◆8.4 知らないことに目を向ける
■第9章 分散開発の設計
◆9.1 ソフトウェア設計の重要性
◆9.2 市販ソフトウェアの設計とフリーソフトウェアの設計
9.2.1 費用の問題
◆9.3 設計の確定事項
◆9.4 コードの設計
9.4.1 設計文書
9.4.2 コードをファイルとディレクトリに分ける
9.4.3 コードをモジュールに分割する
◆9.5 進化中心の設計
◆9.6 フリーソフトウェア設計の原則
9.6.1 入力を制限しない
9.6.2 一貫したインターフェイスを使う
9.6.3 データ構造体の文書化
9.6.4 移植を可能にする
◆9.7 疑問があるときは慎む
■第10章 CVSで使用できるサードパーティ製ツール
◆10.1 サードパーティ製ツールとは
◆10.2 pcl-cvs:CVSへのEmacsインターフェイス
10.2.1 pcl-cvsをインストールする
10.2.2 pcl-cvsを使う
10.2.3 pcl-cvsでのエラー処理
◆10.3 cvsutils:CVS用の汎用ユーティリティ
10.3.1 Cervisia
◆10.4 cvs2cl.pl:CVSログからGNUスタイルのChangeLogを生成する
◆10.5 cvslock:操作をひとまとめに行うためにリポジトリをロックする
◆10.6 その他のパッケージ
10.6.1 Jalindi Igloo
10.6.2 CVSUp(FreeBSDプロジェクトの一部)
10.6.3 CVSWeb:CVSリポジトリへのWebインターフェイス
10.6.4 CVS contrib/ディレクトリ
◆10.7 独自のツールの作成
■第11章 完全CVSリファレンス
◆11.1 この章の構成と規則
◆11.2 コマンド
11.2.1 CVSコマンドの構文
11.2.2 グローバルオプション
11.2.3 コマンドリスト
◆11.3 キーワード置換(RCSキーワード)
11.3.1 キーワード置換を制御する
11.3.2 キーワードリスト
◆11.4 リポジトリ管理用ファイル
11.4.1 共通構文
11.4.2 リポジトリ管理用ファイルのリスト
◆11.5 実行制御ファイル
◆11.6 作業用コピーファイル
◆11.7 環境変数
■付録A GNU General Public License
■付録B GNU Free Documentation License
■付録C 参考文献
■付録D Windows環境でのCVS
◆D.1 Windows版CVSの使い方
◆D.2 WinCvsの使い方
◆D.3 Windows用CVSサーバー
◆D.4 UNIX用CVSサーバーの日本語対応
索引
監訳者紹介
続きを見る