CVSによるオープンソース開発

CVSによるオープンソース開発 レビュー記事

[ ブックレビューコーナー 目次 ]

株式会社オーム社 様のご厚意により, 書籍 "CVSによるオープンソース開発" を ブックレビューコーナー にご献本いただきました. この本のレビューをして頂くべく, Linux Users ML や本サイトにおいて 公募 を行い, これにご希望頂いた方々より感想などをレビュー記事にまとめていただきました.

ここに, レビューアの方々から寄せられたレビュー記事を公開します. (原稿到着順)

株式会社オーム社 様および レビューアの皆様のご厚意に感謝いたします.

なお, 以下のレビューは初版を対象としています.


Reviewed by 赤星 柔充 (yasumichi@h7.dion.ne.jp) さん (HomePage)

「バージョン管理初心者にもお推めできる書籍」

Linux の使用歴
約 8 ケ月
UNIX の使用歴
約 2 年
Linux Box の主な用途
Web サーバー, C 言語によるプログラム
Linux 以外に利用している OS
Windows, Solaris
Linux と Linux 以外の OS の使用頻度の比
100:0 (自宅), 10:90 (職場)

レビュー応募の動機

私がコンピューターを始めたのは 16 年前, プログラムをしてみたいという理由からだった. コンピューターといっても MSX という玩具のような物であったが, BASIC で一応のプログラムは作れる環境であった. やがて MSX-DOS と MSX-C を入手し, C 言語の勉強を始めた.

Solaris に出会ったのは 2 年前ぐらいだったが, 本格的に UNIX を勉強することになったのは, 1 年ぐらい前だった. その頃,同じくオーム社の 『UNIX という考え方』という本に出会い, 一気に UNIX が好きになった. 幸い, フリーの PC-UNIX である Linux が簡単に手に入るようになっていたので 自家 http サーバーの構築を経て現在はメインマシンにも Linux を導入し, デスクトップ分野での活用を研究している所である.

そのような中, CVS を使う必要性に迫られた. Webで簡単な説明を読み, ローカルでコミットやチェックアウトが出来るぐらいにはなったが, どうしても体系的に説明された書籍を読みたいという気持ちに駆られた. そして今回のレビューア募集に出会ったのだ.

CVS 初心者の私はこう読んだ

前書き等を読んで全体の構成を確認した後, イメージをふくらませるためにオープンソース関係に注目している 1, 8, 9 の三つの章をまず読んだ. オープンソースソフトウェア開発に興味のある人には, 先にこの三つの章を読んでおくと実際の CVS の使い方もすんなり読めるようになるだろう. 特にプログラム好きの人は, オープンソースプロジェクトの立ち上げ, あるいは, 参加に俄然, 興味が沸くはずだ.

その後, 2, 3 と二つの章を読んでみたが, 事前に Web から得た知識が理解を助けてくれた. とはいえ, 予備知識がなくても 1 章を理解していれば, そんなに難解な文章ではない. むしろ, 噛み砕かれた訳文になっているので例を実行しながら読めば, 簡単に理解できる.

ここまで来て他の章をパラパラめくってみたが, 内容が高度になっている. ただ読み進めるだけでは, 私の想像力の限界を越えてしまう. ここから, 実際に環境を構築してみることにした. 無論, 一つ一つの例を試しつつ読んでいくのが, 効果的なのだろうが, 予備知識のおかげでここまでは, 想像力だけで読み進めることが出来た.

以前にローカルでリポジトリを構築した経験はある. せっかく, 2 台の Linux マシンが繋がっているので, いきなり pserver を試してみることにした. 第 3 章を参考に構築. 始めは, ログインすることすら出来なかったが, 5 章のトラブルシューティングを参考に何とか, プロジェクトをインポートすることに成功した. が, 今度はチェックアウトでつまずいてしまった. なんでも /root/.cvsignore というファイルにアクセス権がないそうだ.

結局, /root に others のアクセス権がなかったのが原因だが, RedHat 系では, 1 ユーザー 1 グループというスタンスが取られ, デフォルトではそれぞれのホームディレクトリには others のパーミッションがないのだ.

少しずつレベルアップを図っていけば良い

その他の章については, 最初から熟読する必要はないのではないだろうか. とくに初心者は, 無理をすると挫折に繋がりそうである.

まずは軽く全体的な構成を把握する程度で良いと思う. とくにトラブルシューティングなどは, 実際に問題に直面してからでも遅くはないだろう.

第 6 章あたりは, 実際の開発サイクルの参考として, 気分転換のつもりで読んでおくのもいい. 10 ページ少々の頁数なので全てを網羅しているわけではないが, 開発サイクルのイメージがつかめるだろう.

少しずつレベルアップしながら, 次のステップに進むと言うスタンスで臨んでいけるだろう.

まとめ

人間は忘れる動物である. 特に私は, うっかり者. ソースを変更したは良いが, 失敗だったときにバックアップを取っていなかったと言う事も少なくない.

CVS でこまめにコミットし, 適切なコメントをのこしておく癖をつけておけば, そのようなうっかりミスは減るだろう. そのログを利用して, 変更履歴を作る事も可能だ.

値段やレベルの高さから, 初心者は敬遠するかも知れない. だが, 理論的な裏づけがしっかりしているし, 何よりリファレンス的な使い方も可能なのでバージョン管理初心者にもお推めできる書籍だ.


Reviewed by せき たけし (Ta.Seki@jp.yokogawa.com) さん

「CVS のすべてとオープンソース開発の実際を知ることのできる良書」

Linux の使用歴
8 年
UNIX の使用歴
8 年
Linux Box の主な用途
コンピュータで行うべき作業の全て
Linux 以外に利用している OS
MacOS, Solaris
Linux と Linux 以外の OS の使用頻度の比
99 : 1

全体の感想

今まで CVS を個人的な文書やソースコードの管理に使っていましたが, 分散開発において CVS はもっとも威力を発揮するものであると, 改めて知りました. もちろん, 分散開発でなくとも CVS の恩恵を受ける使い方は無限にあります. 本書は, そのすばらしい CVS を導入するための参考にもなりますし, 今まで CVS を使っていたが, もっと使いこなすためのバイブルともなります.

今日, これだけ騒がれているオープンソースソフトウェアですが, 実際の開発の手法を解説した本書は貴重だと思います. オープンソースソフトウェア開発に関する読み物としても面白いと感じました.

文章も冗長でなく簡潔で読みやすいものでした. CVS のリファレンスもコマンドオプションなどが表にまとめられていて, 探しやすく見やすいと感じました.

内容

第 1 章は, オープンソースという考え方の解説です. 「フリーソフトウェアとは何か」から始まり, いくつかのオープンソースに関するライセンスやオープンソースビジネスモデルの例が挙げられています. 広く普及したオープンソースソフトウェアと CVS とのつながりから, CVS が強力に開発をサポートするということを説いています. 「オープンソースソフトウェア」と「フリーソフトウェア」という言葉を区別せずに使ってしまっている人は, この章を読めば適切な使い分けができるようになると思います. また, 広く使われているフリーソフトウェアで大規模なもの (*BSD, GNOME) が CVS を使って開発されていることから, CVS がソフトウェア開発を強力にサポートできることが分かりました.

第 2 章は CVS の持っている機能を一通り解説しています. 特に「CVS での 1 日の作業」という形でリビジョン管理作業の流れが説明されてる部分は, CVS のチュートリアルとしてとても分かりやすいです. CVS がすでにインストールされているシステムがあり, 「とりあえず, CVS を使ってみる」には最適の内容です. 基本的な使い方はマスターできます. また, diff コマンドの結果の読み方が簡潔に解説されており, CVS を使っていなくても役立つと思いました.

第 3 章は CVS のインストールや, CVSROOT ファイルの解説でリポジトリの管理についての内容です. CVS の動作を制御する方法が詳しく書かれています. ネットワークからアクセスできる CVS サーバ構築に関するまとまった情報は Web で探してもみつけることができませんでしたが, 詳しく書かれていてとても役にたちました. また, CVSROOT にあるファイルの機能が細かく解説されていて, バイナリファイルを CVS で扱うなど, カスタマイズの手助けになりました.

第 4 章は watch コマンドの使い方や, ブランチを用いたプロジェクト管理を解説しています. 第 2 章の内容を越え, より CVS らしい便利なリビジョン管理の方法が書かれています. 複数人で同時に開発する場合, watch 機能を使えば円滑に開発を進めることができます. コンフリクトが恐くて, 他の開発者に確認をとりながらファイルを編集しているような場合は, 幸せになれる内容です.

第 5 章はさまざまな事例を挙げたトラブルシューティングが解説されています. 期待する動作をしなくなった, こんな使い方はできないのか, など具体的な疑問に対する答えがあります. CVS を使っていたが, 知らなかったような便利な使い方も発見できるかもしれません. トラブルシュートがまとめられていて, はまったときはこの章を読めば解決の助けとなるでしょう. 欲を言えば, 他の章で機能の解説と共に「注意点」としてこの章へのポインタがあれば, もっと便利であると思いました.

第 6 章は CVS を使って管理していたプロジェクトをリリースする方法が解説されています. どのようなタイミングで, どんな目的でリリースするかなど, 開発の方法論的な話題もあります.

第 7 章は CVS を開発だけでなく, システム管理に利用しようという趣旨の章です. 設定ファイルなどを CVS で見通しよく管理する方法が示されています. もう少し, 具体的な実行例のようなものがあると分かりやすいと思いました. Web のコンテンツを CVS を使って管理する方法などを例として, Id や Date といったキーワードの使い方, 画像や動画ファイルといったバイナリファイルの扱い方などをまとめて知りたいと思いました.

第 8 章はオープンソースという考え方に基づいてプロジェクトをおこし, 運営するために必要なプロセスが解説されています. オープンソースソフトウェアが成功した理由などを Netscape Navigator と Mozilla などの具体的な事例を挙げながら分かりやすく説いています. プロジェクトを運営しなくても, 開発者またはユーザとしてプロジェクトに参加しているのであれば, プロジェクトの運営を知ることは必要なことだと思いました. フリーソフトウェアはみんなで築き上げていくものであると, 改めて思いました.

第 9 章は分散した開発を行うにはどのような点に注意すべきかが示されています. コードをモジュール化することの必要性など一般的な設計だけには留まらず, 移植性などフリーソフトウェアに求められる重要内容も含まれています.

第 10 章は pcl-cvs など CVS をより便利に使うツールを紹介しています. それぞれのツールの使い方も簡単に解説されています. 便利そうなツールがあれば実際に試してみて, ツールに付属のドキュメントを読むなどすればいいと思います.

第 11 章は CVS の持っているすべての機能とその操作についてのリファレンスの章です. コマンドはもちろん, コマンドに対するオプションの使い方等も事細かに解説されています. 一通りこの本を読み終わっても, この章がある限り本書は手放せないと思います. コマンドオプションのみならず環境変数や CVS の管理ファイルについても 詳しくかつ, まとめられていて重宝します. また, 他の章の詳しい解説へのポインタが示されているところも評価できます.

最後に

本書は CVS を使ってみたい人, CVS をもっと使いこなしたい人, オープンソースソフトウェアを開発したい人, これらの人に素晴しい道案内をしてくれます. 幅広い人に対しての良書だと思います.


Reviewed by 樋川 将史 (chamee@mysun.com) さん (HomePage)

「ソフトウェア開発プロジェクトを支える CVS」

Linux の使用歴
4 年
UNIX の使用歴
11 年
Linux Box の主な用途
バックアップサーバ, メールサーバ, ウェブサーバ, 自宅端末
Linux 以外に利用している OS
Solaris, Windows 98, NT, 2000, MacOS9
Linux と Linux 以外の OS の使用頻度の比
5 : 5

はじめに

私は 10 年ほど前に, ソフトウェア開発の構成管理ツールを軸に, ソフトウェア開発環境のコンサルティングを行っていました. 当時, 顧客にソフトウェアのバージョン管理, 構成管理をどのようにやっているのかヒアリングしましたが, ほとんどの顧客が RCS を使っておりました. 離れた拠点間での分散開発を行っている顧客は, 開発段階のソフトウェアをテープにコピーして郵送するといった原始的な手法で, ftp を使ったサイト間での転送を用いているのはいい方でした. そういったやりかたですから, RCS の差分データはそれぞれのサイトに存在し, サイト間の RCS データの整合性を図るのに顧客は苦労していました.

CVS は, 昨今のソフトウェア開発プロジェクトにフィットする

RCS ではファイル単位でしかバージョン管理できないため, プロジェクトが大きくなるにつれて現在一般的なコンカレント開発, バージョン管理でもっとも重要な変更履歴の管理が複雑になります. というよりも, 開発プロジェクトで RCS は使えないでしょう. それに代わり, ソフトウェア開発プロジェクトを支える構成管理ツールとして CVS があります. 本書の主題は, CVS のプロジェクト運用の促進方法とフリープロジェクトの実際の運用方法が密接に合致したために CVS がフリーソフトウェア界の第一のバージョン管理ソフトウェアとなったという点です.

CVS コマンドの説明

本書の前半に CVS コマンドの使用方法が詳細に書かれています. CVS の初心者は本書を読めば, CVS で構成管理されるソフトウェア開発プロジェクトにスムーズに参加することができるでしょう.

コンカレント開発に対応

従来のバージョン管理システムは, ロック -> 修正 -> ロック解除というモデルで, 同一ファイルを複数の開発者がアクセスして変更することはできませんでした. いわゆる排他制御によりファイル管理を行っています. それに対し, CVS では, コピー -> 修正 -> マージ モデルで, 複数の開発者が, 同時に, 同一ファイルの変更を行うことができます. それぞれの開発者の変更は, ファイルをマージすることにより, 反映されます.

CVS の運用モデル

本書の後半に, CVS を使用しておこなうソフトウェア開発モデルが説明されています. CVS が比較的規模の大きいプロジェクトで使用できることがわかります.

総括

本書は, CVS コマンドの使用方法, 実際のプロジェクト運用モデル, CVS のシステム管理, 代表的なトラブルシューティング, FAQ といった内容が詳細に説明されています. CVS を使用するのであれば本書一冊で, 十分に理解でき, 使用することができます.


Reviewed by 高野 誠二 (stakano@densan-soft.co.jp) さん

「オープンソースへの興味を持たせてくれる一冊」

Linux の使用歴
約 2 年
UNIX の使用歴
約 7 年
Linux Box の主な用途
開発 + 各種サーバー
Linux 以外に利用している OS
Windows, AIX
Linux と Linux 以外の OS の使用頻度の比
他 OS : Linux = 80 : 20

本書は 2000 年 6 月に発行された『CVS −バージョン管理システム−』の改訂版であり 原題 "Open Source Development with CVS, Second Edition" というタイトルが示す通り オープンソース開発と CVS について記述された本である.

本書は目次も含め 378 ページという重厚な本ではあるが 文字の大きさも適切で読みやすい印象を受けた. How to 本としての実用性という点においては 全体を通して CVS の基本的機能からシステム管理方法や手順まで記述されており, リファレンス代わりに利用するもよし, システム管理の手引きとしても 一冊あれば十分に活用できるものであるといえる. 私個人は現在, CVS 初心者であるが 今後, 本書により多くの恩恵を受けることができるような予感にさせてくれる本である.

また本書のもうひとつの側面である筆者のオープンソース開発者としての経験から述べられた オープンソースプロジェクトの歴史と運営方法に対する考え方が描かれているが 純粋に読み物としても楽しめるものであった。 特に 第 8 章「オープンソースプロセス」から第 9 章「分散開発の設計」にかけての章は オープンソースプロジェクトを円滑に遂行するためのプロジェクトの運営方針, 方法論から設計手法に至るまでが筆者の経験を通して述べられており 私自身もソフトウェア開発に従事する者として非常に興味深く読むことができた. また, 我々が何気なく利用している apache 等の オープンソースプロジェクトにおける成功と失敗のエピソードの部分等, ユーザーとして Web を利用しているだけでは決して見えてこない部分を語った面白い読み物であったと思う.

あえて要望を挙げるのであれば 実際に CVS を利用するユーザーの立場でのマニュアル本として 機能は本書の内容で十分であると思えるのだが ゼロからサーバーを構築するという目的のユーザーにとっては 具体的な設定方法, 手順がもう少しわかりやすい方がよかったのではないかと思う.

まとめ

全体を通して読み終えた感想としては オープンソースに携わる開発者の苦悩とプロジェクトを円滑に運営し 問題点を改善するためのツールとして浮かび上がってくる CVS の姿が印象的であった. このように実用的でかつ, CVS の本質に触れた本書は 多少なりとも興味を持っている方や現在進行形で利用しているユーザーの方々にも是非, 手にして欲しい本であると言える. 個人的にはバージョン管理ツールとして純粋に CVS に興味は持っていたのだが 本書を読み終えて なぜ CVS というツールがここまで必要とされ利用されているのかが理解できた気がする.


Reviewed by 丸林 孝通 (exarias@ps.ksky.ne.jp) さん (HomePage)

「ソフトウェア開発に快適な環境を与える CVS」

Linux の使用歴
5 年
UNIX の使用歴
1 年
Linux Box の主な用途
プログラミング, Web 閲覧, 文書作成, 画像の編集
Linux 以外に利用している OS
Windows98SE
Linux と Linux 以外の OS の使用頻度の比
7:3

1, はじめに

本書はオープンソース開発の活動を手助けする CVS の利用方法について解説しています.

2, 本書で得られるもの

本書で得られるものは 2 つあります. 1 つは CVS の使用方法とその活用方法です. もう 1 つはソフトウェア開発におけるプロジェクトの運営方法です.

オープンソース開発の解説は, 市販ソフトの開発も例に挙げながら, オープンソース開発における利点と欠点を述べています. プロジェクトを成功させるための解の一例を紹介しています. また, Netscape のオープンソース化の際に起こしたスタートミスを挙げて, オープンソース開発の難しさと在り方についても解説しています.

しかし, オープンソースのためだけではなく, CVS は文書管理のためのバージョン管理ツールとして多くの用途に利用できます. 実際に本書の第 7 章ではシステム管理を行うための CVS の使用方法を紹介しています. そして本書で紹介されているプロジェクトの運営方法はオープンソースでない活動のためにも役立つことでしょう.

3, 本書の構成について

本書は前半では CVS の利用方法について紹介しています. そして後半ではオープンソースの運営方法についての解説, および CVS のリファレンスを紹介しています. 全体としては, CVS の導入からはじまり, ソースコードの管理方法, ソフトウェアのリリース, そしてプロジェクトの運営方法の解説へと進みます.

第 1 章ではオープンソース開発の考え方の解説と, CVS の生い立ちと利用形態の簡単な説明を行っています.

第 2 章では CVS の基本操作を例を示して紹介しています.

第 3 章では CVS のインストールと CVS がプロジェクトを保存するリポジトリの作成, および設定方法を説明しています.

第 4 章では CVS を使った開発者同士のコミュニケーションのとり方, および CVS の重要な機能であるブランチの活用方法について説明しています.

第 5 章では CVS 使用時にトラブルが起きたときのの解決方法を紹介しています.

第 6 章はプロジェクト成果のリリース方法について解説しています. ここではソフトウェアをプロジェクトでいかに開発して公開してゆくかを解説しています.

第 7 章では CVS の活用方法としてシステム管理の方法を紹介しています.

第 8 章ではオープンソースプロジェクトを運営する上で心がけるべきことを解説しています.

第 9 章ではプロジェクトを発展しやすいものにするために 心がけると良いソフトウェアの設計手法について解説しています.

第 10 章では CVS の利用を快適にするサードパーティ製ツールを紹介しています.

第 11 章は CVS のリファレンスです.

そして, 付録には GPL のライセンスの文書や Windows 版 CVS の紹介が行われています.

第 2.3 章, 第 2.4 章のユーザー yarkon による CVS の操作を例にした解説が, 実際の作業に近い順序で進むので理解しやすかったです. 読者は本書の操作手順に沿って実際に操作しながら読み進めることで, CVS の機能を覚えることができると思います. しかし, そのためにはプロジェクトを格納するための必要なリポジトリの作成が第 2 章で説明されていませんでした. リポジトリの作成は第 3 章で説明されていますが, 第 2 章の始めに演習用として簡単に説明すると良かったと思います.

CVS を初めて使用される方は第 2 章で CVS の説明に目を通す事から始め, 続いて第 3 章でリポジトリの作成を行って, 第 2 章の内容を実践すると CVS の操作方法が身につくと思います. そして第 4 章では CVS によるブランチの活用方法を学び, その便利さを知る事ができると思います.

4, 最後に

本書は CVS の利用方法を例を示して紹介しているので, 実際に CVS を操作しながら学ぶことができると思います. しかし, 図の量が少ないため, 特にタグとブランチの理解には少々手間取りました. この辺は図に描くか, WinCvs などのバージョンが図示できるツールを使用すると学びやすいものと思います.

また, Windows と UNIX が混在するような環境では文字コードの変換を行う必要があります. しかし本書では詳しくは解説していないので, 他の方法で情報を集めたり, 試行錯誤して設定を行う事になるでしょう.


[ ホーム | マップ | ニュース | 検索 | ドキュメント | リンク | プロジェクト ]
このサイトに関するご意見・ご要望は Webmasters までお願い致します.