[目次に戻る] [入門CVSのサポートページに戻る] [みかままのページに戻る]
[前へ] [次へ]
Last-updated: $Date: 2003/10/01 01:53:48 $ GMT
CVSの周辺ツールについては、Molli氏のページが詳しいです。また、そこからもリンクが張られていますが、SourceForgeというオープンソースの開発を積極的に支援しているサイトにもCVSのカテゴリーがあり、2001年2月段階で45個ほど登録されています。ただ、こちらは企画段階から、実装初期などの開発者以外には使えない段階のものまで混ざっているため、注意が必要です。なお、オープンソース運動に積極的に開発者として参加したいという場合には、SourceForgeは外せないでしょう。SourceForgeは開発者にCVSリポジトリ領域を提供しており、登録ユーザなら読み書きができますし、登録されてなくても匿名(anonymous)アクセスでスナップショットを取ってくることができます。これまで、CVSの使い方を学んできましたから、SourceForgeに接続し、取ってくることは難しくないはずです。SourceForgeのCVSリポジトリへの匿名アクセスについて、簡単な使用例を図Xに示しておきます。
| 図X SourceForgeのCVSリポジトリに匿名でアクセスしてみる |
% cvs -d :pserver:anonymous@cvs.cvsbiff.sourceforge.net:/cvsroot/cvsbiff login (Logging in to anonymous@cvs.cvsbiff.sourceforge.net) CVS password: % cvs -z 3 -d :pserver:anonymous@cvs.cvsbiff.sourceforge.net:/cvsroot/cvsbiff checkout CvsBiff cvs server: Updating CvsBiff U CvsBiff/README U CvsBiff/cvsbiff.tcl |
この例では、cvsbiffというツールを取ってきてみています。まず、1行目で匿名ユーザanonymousでログインします。このとき出てくるプロンプトには、単にリターンを押せば良いです。パスワードは要りません、というか入れてはいけません。ログインしてアクセスする準備が済んだら、次は実際にこのユーザ情報でチェックアウトします。ちなみに、cvsbiffの場合、モジュール名がCvsBiffになっていて登録名と違っていました。モジュール名にcvsbiffと指定すると、そんなファイルがないと怒られるので、前もってSourceForgeに設置されているcvsweb(下に紹介するウェブインターフェース)を介して、モジュール名を確認しておくのが無難です。4行目のcheckoutコマンドの実行時に渡しているオプション-zは、本文では説明しませんでした。これは、gzipと同じ圧縮法による圧縮を行って転送するようにという指定です。-zの後ろの数字が圧縮のレベルになります。リポジトリのある計算機の計算能力は高いが、転送速度が遅いという環境の人は、このコマンドを活用するのが良いでしょう。圧縮には計算能力は幾分必要です(最近の計算機なら大丈夫とは思いますが)。
なお、SourceForgeに限らず、他のツールでも自前のCVSリポジトリから匿名アクセスで取ってこれるようにしてある所は多いです。CVS用のツールですので当たり前かも知れませんが、FreeBSDなどでも全てのソースがCVSリポジトリで提供されていますので、匿名アクセスの仕方に慣れておけば便利です。積極的にチャレンジしてみて下さい。
それでは、これらのサイトで紹介されていたり、そのほか色々なところで見かけて筆者が便利そうだと思ったものについてざっと紹介してみようと思います。使ったことがある方が少数ですので、どこか間違っているかもしれません。そこはご愛敬ということで。
Molli氏のページ
http://www.loria.fr/cgi-bin/molli/wilma.cgi/rel
SourceForge
http://sourceforge.net/softwaremap/trove_list.php?form_cat=53
CVSのコマンドの実行やそれに伴うファイルの変化などをグラフィカルに表現してくれるGUIは沢山ある。ここでは、ざっと紹介するだけに留める。
第2章でインストールについて紹介したWindows環境用のGUI。95, 98, NT, 2000で動くことは確認済み。MEでも多分動くと思われる。これは、C++で書かれたCVSのためのフロントエンド(インターフェース)の一群のうちのひとつ。他に、MacOS用のMacCvsおよび、Unix用のgCvsが提供されている。CvsGuiという開発チームによって推進されているオープンソースプロジェクト。最近SourceForgeを利用するようになったので、開発中のスナップショットを上で紹介した匿名アクセスの方法で入手することができる。
スクリプト言語であるTcl(Tool Command Language)のWindows版をインストールすることにより、メッセージウィンドウで対話的にcvsコマンドを利用することができるようになる。また、マクロによる自動化も可能になる。日本語化キットが京大マイコンクラブの山田 聡氏によって作成・配布されている。1.2の正式リリースでかなりの機能が充実した。
http://www.cvsgui.org/ : CvsGui プロジェクトのホーム。http://www.wincvs.org/ も実体は同じ。
http://dev.scriptics.com/software/tcltk/ : Tcl開発・実行環境のWindows版を作成・配布しているサイト
http://www.kmc.kyoto-u.ac.jp/‾slakichi/barn/ :日本語化キット、ごった煮
http://www.araxis.com/merge/index.html:ファイルのマージに便利なツール(商用)。
http://winmerge.sourceforge.net/ : WinMerge。オープンソースなファイルマージツール。SourceForgeにて開発者募集中。
http://www.laine.org/cvs/vss2cvs/:Microsoft Visual Source Safe から CVS へ移行する時に役立つPerlスクリプト。
CvsGuiプロジェクトが提供するMacOS用GUI。WinCvsと同様にTklが使用できる。2001年2月にリリースされたMacCvs 3.1安定版は、GUSI 2.1.5、cvs-1.11、Tcl 8.3に対応している。MacOS Xの対応は現在行われている模様で、cvs-machという名前でアルファバージョンが提供されている。また、MacCvs 3.1のベータ版はXにも対応している。奇特な方はぜひ人身御供に。同サイトでは、Mac用のbison(mwbison)とflex(mwflex)も配布されている模様(開発者向け)。
もともと、GIMPという画像編集ソフト用に開発されたGTK+というGUIツールキットを利用した、UNIXのX Windows用GUI。使用するためには、GTK1.2以上が必要(GNOMEユーザは問題ないと思われる)。2001年3月時点では、1.0のまだアルファ版しか提供されていない。ソースから作成するか、RHL7.0ならば、RPMおよびSRPMが提供されている。
http://www.gtk.org/ : GTK+ (The GIMP Toolkit) フリーのGUIツールキット
MacOS用のフリーのCVSクライアント。Netscape社に支援されて開発が進められていたが、現在はSourceForgeに移動して開発が続けられている。本書執筆時点では、配布形式になっていないので、最新版を利用したい場合には、CVS経由となる。古いリリース(2.5b2)は、http://www.maccvs.org/download/ から入手することができる。
http://sourceforge.net/projects/maccvspro/
これもMacOS用のフリーのCVSクライアント。2001年3月時点の最新バージョンは1.6で、68K用とPPC用が配布されている。
http://www.heilancoo.net/MacCVSClient/
完全にJavaで書かれたCVSのクライアント。同サイトでは、ウェブインターフェースであるjCVSletの開発・配布も行っており、これらのソースツリーをjCVSletを介して閲覧することができる(サイト内は今ひとつ分かりにくい構成になっているためたどり着くのが大変)。
http://www.trustice.com/java/jcvs/
関連サイト?: http://www.jcvs.org/
Tclで書かれたGUIツールキットであるTkを利用したCVSのGUI。実行には、Tcl/Tk 8.1以上が必要。Tcl/TkはフリーUNIXには大抵入っているはずだが、SourceForgeにあるTclのページあたりから最新版を入手しても良い。現在のWindows版Tcl配布キットには、Tkは入っているので、上で紹介したTcl/Tkの配布サイトから入手すること。SourceForgeの開発支援を利用しているので、これもスナップショットなど入手可能である。
http://www.twobarleycorns.net/tkcvs.html (SourceForge: http://tkcvs.sourceforge.net/)
http://tcl.sourceforge.net/:SourceForgeにあるTclのページ
宣伝文句によれば、Microsoft Visual Source Safeの使いやすさと、 CVSのパワーを結合したツールということらしい。2001年10月には商用版が出る模様。それまでのベータ版はフリーで使える。
C++で書かれたクロスプラットホームなGUIツールキットであるQtを利用したGUI。クロスプラットホームといえ、ここで実際に配布されているバイナリは、UNIXのみであるので、WindowsのQtを利用する場合はコンパイルが必要である(しかも多分人身御供となる)。
http://www.trolltech.com/:Qtのホームページ
X Windowsのデスクトップ環境のひとつであるGNOMEに準拠したCVSのGUI。名前の由来は、CVS/Pharmacyという名前の薬屋さんがあるためらしい(薬屋さんのホームページはhttp://www.cvs.com/…)。2000年の3月にN. Adam WalkerからMatthias Kranzに管理者が交代し、SourceForgeにホームが移った。現在あまり更新は活発でない。
http://pharmacy.sourceforge.net/
http://www.gnome.org/:GNOMEのホームページ。
変わり種。Windows の Explorler を拡張して CVSの機能を利用できるようにするためのプラグイン。バージョン管理下にあるファイルは状態により色が換わって見える。右クリックのメニューが増え、diffをとったり、commitしたりといった操作ができるようになる。
http://www.cvsgui.org/TortoiseCVS/index.html
ウェブインターフェースはCGIなどを経由して、CVSのコマンドを実行し、その結果をウェブページ上で眺められるようにしたものです。リポジトリの様々な状態を見ることができるcvswebが有名です。このcvswebを一部に取り込みつつ、より高度な操作ができるようにしようと様々なツールが開発されているようです。
ウェブインターフェースとして最も有名なものだろう。SourceForgeでも各プロジェクトのCVSリポジトリを閲覧するためのインターフェースとして提供しているし、他のオープンソースなプロジェクトでも提供している所は多い。各ファイルのログ、履歴、各リビジョンとの比較、注釈(CVS1.10以降)などを非常に見やすい形で見ることができる。特にリビジョンの比較を行った場合に、2つの列に並べられて、変化の様子が色分けされているのは秀逸である。ファイルの表示順も名前順や更新時間順などで並べ替えができる。
このソフトはまず、FreeBSDの開発用にBill Fennerが開発したものを、Henner Zeller、Henrik Nordstr?m、Ken Coarらが拡張して現在に至っている。そのためライセンスがBSDライセンスである。CVSの匿名アクセスも用意されている。
cvswebの設置には、CVSだけでなく、RCSも必要である(RCSはGNUのサイトから入手すること)。NT版については、cvsnt serverの項を参照のこと
日本語ログの内容がJISであった場合に表示が化けるという問題が報告されており、それを回避するためのパッチはhttp://www-vox.dj.kit.ac.jp/nishi/cvsbook/から入手することが可能である。
なお、同サイトではcvswebeditというファイルの追加などのインターフェースを提供するCGIスクリプトのコードも公開しているが、cvswebeditの開発そのものは現在休止しているようである。
http://stud.fh-heilbronn.de/‾zeller/cgi/cvsweb.cgi/
http://www.gnu.org/:GNUのサイト
類似品:http://www.spaghetti-code.de/software/linux/cvsweb/
cvswebに着想を得て作られたというウェブインターフェース。オブジェクト指向スクリプト言語Pythonで実装されている。cvswebとほとんど同じ機能を提供しており、さらにBonsaiの問い合わせ機能の一部を提供することも可能である。問い合わせ機能を利用する場合には、フリーのデータベースMySQLとPhytonからMySQLを利用するためのモジュールMySQLdbが必要である。BSDライセンス。
http://www.python.org/ : Phytonのホームページ
http://www.mysql.org/:MySQLのホームページ
http://dustman.net/andy/python/MySQLdb:MySQLdbのホームページ
Java言語で実装されたウェブインターフェースで、他のものとは違ってCGIではなくServletとして動く。jCVSを開発・配布しているところが提供している。cvswebと似てはいるが、historyやannotationの機能は無い模様。その代わり、Java言語向けの機能として、JavaDoc文書へのリンクが張られるようになっている。
設定は、JavaServletの組み込みをしなければならないので、ちょっとややこしい。Java Servletの実装まわりについては、Jakartaの成果を日本語化しようという有志によるJa-JakartaにあるTomcatについての説明などを参考にすると良いだろう。なお、Jakartaはオープンソースで品質の高いJavaのプラットホームを提供することを目指すプロジェクトである。ApacheのJava Servler拡張については、ApacheJservのホームページを参考にして欲しい。
http://www.trustice.com/java/jcvs/
http://www.ingrid.org/jajakarta/:Ja-Jakarta
http://java.apache.org/jserv/:ApacheJservのホームページ
CVSリポジトリに対して、様々な問い合わせを行うためのウェブインターフェース。例えば、どのブランチの何日以内に変更されたファイルはどれかなどという問い合わせができるようになっている。実際にこのホームページで、Netscape(Mozilla)のソースツリーに対して動いている様子が見えるようになっているので、実際に見て様子をつかむと良いだろう。このシステムを利用して、ソースツリーに何が起きてるかをつかむことができるTinderboxというシステムも公開されている。
入手方法は、MozillaのCVSリポジトリに匿名アクセスして、checkoutするしかないようである。ホームページに匿名アクセスの方法とモジュール名(mozilla/webtools/bonsai)が書かれているので、使ってみたい場合にはがんばること。ただし、問い合わせの処理の実体であるデータベースMySQLが必要であるなど、設定はかなり難しいようである(筆者は設置したことはない)。
http://www.mozilla.org/bonsai.html
http://www.mozilla.org/tinderbox.html:Tinderboxのページ
Bonsaiの類似品で、Bonsaiのインストールがあまりにたいへんであったので作成されたというもの。このパッケージはSourceForgeのCVSリポジトリから入手すること。
MySQLと、それにアクセスするためのPerlモジュールであるDBI.pmおよび、CGIの処理モジュールであるCGI.pmが必要。DBIは、データベースの標準インターフェース(DBI)を提供するためのモジュール。これらのモジュールはPerlのモジュール配布サイト(もしくはこの配布形式とシステムの一般名称)であるCPANから入手することができる。次のFreepositoryのホームページにCPAN経由での入手方法および設定方法が詳しく記述されている。
http://cvsquery.sourceforge.net/
http://www.cpan.org/: CPAN
CVSのウェブインターフェースというよりは、CVSをバックエンドに持つ貯蔵庫。ウェブページからファイルの追加・削除・公開などの操作が行える。パスワードで認証するため、SSLに対応したApacheウェブサーバであった方が良い(RHL7.0のものは対応済み)。
さらにインストールのためは、 オープンソースなデータベース管理システムであるPostgreSQLと データベースにアクセスするためのperlのモジュール(DBI
pmと、DBI経由でPostgreSQLを使えるようにするモジュールであるDBD-Pgの2つ)が必要である。
http://www.postgresql.org/: PostgreSQLのホームページ
http://www.sra.co.jp/people/t-ishii/PostgreSQL/index.html:PostgreSQLの日本語メーリングリストのページ
WindowsやMacOSで使用されている各種統合開発環境からCVSが使用できればうれしい人はたくさんいるだろう。有志により開発された、統合環境を拡張するためのプラグイン(アドインともいう)があるのでここで紹介する。
MetroWorks社のCodeWarriorでバージョン管理を実現するためのプラグイン。こちらはWindows用。ホームページの文書には以下のようなことが書いてある。IDE経由で直接CVSの機能の多くが使える。pserverなどの機能を使おうとするとcvs.exeにパッチをあてる必要がある。もしくは、WinCVSなどと併用すると良い模様。使える機能として上げてあるのは次の通り、モジュールの取り出し、更新、edit、unedit、コミット、ファイル追加、作業コピーのリビジョン閲覧、作業コピーの差分比較、ファイルの状態表示、ファイルの履歴表示、タグ・ブランチ。
コマンドライン版のcvs.exeが必要。WinCvsは推奨。ちなみに、WinCvsにはcvs.exeが含まれている。執筆時点でこれはalphaバージョンで、2000年3月にエクスパイアするとのこと。本が出る頃には、新しいバージョンがリリースされていると思われる。より詳しい情報については、以下のホームページを見ること。ソース、バイナリのダウンロードおよび各種文書(インストール法、FAQ)が用意されている。
abCVSと同様に、MetroWorks社のCodeWarriorでバージョン管理を実現するためのプラグイン。こちらはMacOS用。ホームページには以下のように書かれている。これにより、CodeWarriorIDEを捨てなくても、MacCvsを使用することができるようになる。コピーの取得、ファイルの管理(追加、移動、削除)、チェックイン・チェックアウト(IDEでの用語で、editとcommitに対応するらしい)、レポート生成、リリース管理(ラベル=タグのこと)、という機能を提供する。なお、リポジトリからのチェックアウト(checkout)自体は、これを介しては行うことはできないようである。pserverを利用した接続は可能。
このプラグインは、$20のシェアウェアであるので、使いつづける場合には料金を払うこと。
http://www.electricfish.com/products/CWCVS/
VisualC++からCVSリポジトリにアクセスするためのプラグイン。WinCvsが必要。
http://www.geocities.com/kaczoroj/CvsIn/
MicrosoftのソースコードコントロールAPIであるSCCに対応したCVSのIDE実装を提供しようとするプロジェクト。まだちょっとできあがってないので使いにくいらしい。
http://members.home.net/preston/cvsscc.html
CVSSCC同様、SCCAPI互換IDEからCVSを利用可能にするためのモジュール。こちらは、WinCvsのDLL、cvs2ntslibを利用している。ホームページには、互換IDEと動作確認の状況が一覧になっているので見ると良いだろう。
世の中にはほとんど統合開発環境と言っても良いようなテキストエディタが存在する。特に、UNIX起源のEmacsとその仲間(Xemacs、Muleなど)は、システム自体がEmacs lispというプログラミング言語の実行環境となっており、その言語で書かれたプログラムを追加していくことにより、自身の動作をどんどん拡張していくことができる。EmacsはWindows OSへの移植も進んでいるため、利用者も増加しているだろう。まだ、CVS自体の知名度が低いためか、日本で使われているWindows用テキストエディタでCVSに対応したものは少ないようである。商用ソフトウェアではあるが、Peggy Proはその点珍しい存在と言える。 ちなみに、秀丸にはRCSを使うためのマクロはあるようである(「秀まるおのホームページ」http://hide.maruo.co.jp/のライブラリに納められている)。
※リンク修正:2003-10-01
VCとEdiffはEmacsには標準で入っている。VCは汎用のバージョン管理システムへのインターフェースで、RCS、SCCS、CVSなどに対応している。そのため、CVSユーザにとっては直感的な理解が難しくあまり使いやすくない。とはいえかなりのことはできるので、次に紹介するpcl-cvsのインストールが難しければ、VCを使ってみるのも良いだろう。Ediffは、それ自体非常に強力なファイル比較・マージ支援ツールであるので、使い方を覚えておいて損はないと思う。
VCやEdiffと異なりCVSに特化しているため、根強い人気がある(筆者もこちらを利用している)。チェックアウト機能はないため、コマンドラインでチェックアウトしておく必要がある。使用にあたっては、elibというデータ型や文字列操作などの汎用操作を提供するEmacs lispのライブラリが必要なので、あらかじめインストールしておく必要がある。pcl-cvsの最新パージョンとともに、以下のFTPサイトで配布されている。かなり以前に、保守管理者がGreg WoodsからStefan Monnierに変わったため、その挙動も大分変わりました。一時期不安定な時期もありましたが、現在はかなり安定しています。バージョン1.x系列が前の管理者、2.x系列が新管理者になります。
なお、2001年2月時点での最新版RHL7.0用のSRPM、RPM(emacs用)については筆者が作成したものがある。サポートサイトに置いておくので、人身御供になって頂ける方は持っていって頂いて良い。
ftp://rum.cs.yale.edu/pub/monnier/pcl-cvs/
Peggy Proはアンカーシステムズという会社が開発している商用のテキストエディタである。Peggy、Peggy Pro、Peggy Pro for Oracleという3種類のPeggyが存在するが、CVSに対応しているのはPeggy Pro (for Oracle)でただのPeggyは対応していない(RCSには対応している)。30日間の試用ができるので試してみるのも良いだろう。
http://www2.noritz.co.jp/anchor/
ここで紹介するのは、CVSのネットワークを介したアクセスに関してまだまだな点を、なんとか解決しようとする試みである。安全なアクセスについての考察は、http://cvs.m17n.org/cvs/links.ja.htmlが詳しい。
ネットワーク機能を強化するために、コードの整理やいくつかの拡張が加えられたCVS。nserverという新しい接続方式を提供する。この接続方式を利用すると、より安全な認証(PAMなど)と実行(root権限を使わない、リポジトリ外のファイルにはアクセスできない)が行えるようになる。しかし、パスワードの暗号化にはまだ未対応である。cvs-nserver 1.10.8.3では仮想リポジトリという機能が提供されるようになった(ベータテスト中)。これを使用すると、2つのシステムアカウントの下で、無限大の仮想ユーザがリポジトリ全体をアクセスできるようになり、それはネットワーク経由で管理することが可能ということである。
http://alexm.here.ru/cvs-nserver/
Windows NT/2000 用の cvs サーバ。NTサービスとして動き、2401ポートで待ち受け、接続毎にcvs.exeを呼び出す。オプションとして、NTドメインを介したユーザ認証を行う。パイプを経由した認証を行う:ntserver:というものに対応したWinCVSのdllを提供するが、これはNT以外では機能しない。つまり95ではpserverしか使えない。同ページではNT版cvswebの配布も行っている。運用方法については、http://www.devguy.com/fp/cfgmgmt/cvs/cvs_admin_nt.htmが詳しい。
http://cvsauth.sourceforge.net/
pserverでの接続をより安全におこなえるようにするためのパッケージ。複数のリポジトリがある場合にも、pserverをroot権限で実行しなくても良くする。CVSユーザが勝手にユーザを追加することをできなくする。独自のSSLに基づく認証を提供することで、パスワードが平文で流れることを防ぐ。中身は平文で流れる。
cvsにあてるパッチが2つ提供されているが、あてる対象が違うので注意が必要である。ひとつは、cvsauthをサーバとして動かすために必須なパッチで、サーバのみにあてればよく、クライアントにあてる必要は無い。もう一方はSSLの機能を提供するためのパッチで、SSLにより経路を暗号化して認証を行う、sserverという接続方式を新規に提供する。こちらのパッチはこの接続方式を使うクライアントにあてなければならないが、サーバにはあてる必要はない。sserverという接続方式を追加しないで、pserverで通信する場合にはあてる必要は無い(その場合従来どおりパスワードは平文で流れる)。
類似品: SCVS (http://cuba.xs4all.nl/‾tim/scvs/)。SSHで通信路を暗号化する方法とそのツール。これはプログラマでなければ設定が難しい。
chrootとsuidを使用して、pserverの実行をより安全にするためのラッパー(Cプログラム)。chrootは、プログラムが限られたディレクトリ以下しかアクセスしないようにするための機能であり、suidは実行ユーザを変更するための機能である。
http://guv.ethz.ch/‾flip/cvsd/
ここでは、CVSコマンドの出力などを各種形式に変換するツールのうち、コマンドラインやcron、loginfoなどから呼び出すことにより使えるものを紹介する。つまり、気が向いたときや時間を決めてcronにより自動起動するか、コミットした時に自動的に起動するようにしておく、という使い方ができるので、各自自分の都合にあわせて使って欲しい。
CVSのログの出力をまとめて、GNUスタイルのChangeLogの出力形式に変換するためのツール。最近のバージョンではXML形式でも出力できる。コミット時か、タグ付け時に自動生成するのが良いのではなかろうか。類似品として、cvs-1.10.8のcontribに含まれるrcs2logというシェルスクリプトがあるが、こちらは、RCSファイルのセットからChangeLogを生成する。rcs2logの提供者はPaul Eggert。ちなみに、同contribに含まれるツールに、コンフリクトを起こしたChangeLogファイルをマージするためのclmergeというPerlスクリプトもある(提供者:Tom Tromey)。
http://www.red-bean.com/cvs2cl/
cvs2htmlはcvs logコマンドの出力をHTML形式に整形して出力するためのPerlスクリプトである。上であげたウェブインターフェースと異なり、対話的には動作しない。cronで定期的にか、コミット時に自動生成するのが良いだろう。cvsstatはファイル追加・削除・変更といった状態の変化をよりわかりやすいフォーマットで出力してくれるPerlスクリプトである。これはコマンドラインで実行するのが普通だろう。
cvs logコマンドの出力には、ブランチもトランクも様々なタグがごちゃ混ぜになっているため、非常に分かりにくい。これをいくらか変化がわかるような形で出力するためのPerlスクリプト。ツリー表示機能のあるGUIを使った方がいいかもしれない。
http://www.cs.rice.edu/‾ssiyer/code/cvs-exp/
cvs historyの出力をHTML形式に整形して出力するためのPerlスクリプトである。イベント種類はオプションでは切り替えられない模様(checkoutに限ることは-cオプションでできる)。
http://www.ginini.com/software/cvshist/
宣伝文句によれば、「CVS/javadoc/ソースコード/文書」管理システムである。Javaプログラム開発キットであるJDKは、昔からjavadocというソースコード内に特定の書式で書かれたコメントを抽出し、関数やクラスが相互にリンクしあったHTML文書として生成するという機能を提供してきた。Alexandriaはこれを積極的にCVSリポジトリに格納されたJavaソースコードに適用し、JavaDoc文書を生成する。また、ソースコードのクロスリファレンスも生成する。プロジェクト文書も管理する。JavaDocおよび通常のブラウズに加えてcvswebをインターフェースとして提供している。バグレポートデータベース、ダウンロード機能、プロジェクトホームページ、メーリングリストなども提供する。コードのビルドとそのビルドのテストも行う(通常loginfoから起動するようにする)。文書はXMLの形式で貯えられ、XSLを介してHTML文書として表示される。遠隔リポジトリもローカルと同じように閲覧することなどが将来の目標らしい。
これも、Jakartaプロジェクトの一部の模様だが、プロジェクトとして表には出ていない。Jakartaプロジェクトが提供するビルドツールAntおよび、Apache XMLプロジェクトが提供するXMLJavaパーサXerosとXMLからのHTML変換機構Xalanを内部で使用している。これらはAlexandriaの配布キットの中にライブラリとして含まれているので、特に別途入れる必要は無いようである。
筆者はまだ試してないのでどれくらい実際に使えるものなのか不明。面白そうなので、ぜひ試してみたいとは思っている(ちょうどJavaプログラムを書きたいと思っていたところだし)。Javaプログラマなら是非トライ!FTPでのダウンロードに加えてCVSによる匿名アクセスも提供されている。サーバとパスワードなどの情報はAlexandriaのホームページ内に掲載されているのでそれを見て欲しい。
http://jakarta.apache.org/alexandria/
本文中で紹介したが、コミット時の変化を記録・通知するためにloginfoに設定するように作られたPerlスクリプト。log_jpはknjwrp patchを適用した場合にできるファイルで、メール通知時にnkfを利用してJISコードにログを変換する部分だけが異なる。CVS-1.10.8のcontribに含まれている。提供者はKevin Samborn。同じような機能のPerlスクリプトがcontribには含まれている。名前はmfpipeで、提供者はJohn Clyne。
この2つのコマンドは組み合わせて使う。コミットが複数のディレクトリにわたった場合に個々のログメッセージを一つのログメッセージにまとめ、結果をメールする。RCSキーワードのチェックも行うらしい。これも、CVS-1.10.8のcontribに含まれている。提供者はDavid Hamptonだが、Greg A. Woodsによりかなり書き換えられている。
既にRCSの管理下にあるファイルをCVS管理下におくための変換ツール。CVS-1.10.8のcontribに含まれている。提供者はPer Cederqvistだが、David MacKenzieがshバージョンに書き直した。
SCCSのファイル(群)を、管理情報(日付、著者、ログなど)を維持しながらRCSのファイル(群)に変換するためのツール。CVS-1.10.8のcontribに含まれている。提供者はKen Cox(contribに入れるときBrian Berlinerがいろいろといじっている)。
後はなんとも分類のしようがなかったものをここに並べておく。
commitinfoに設定したプログラムは、コミットの実作業前に実行され、その結果によってはコミット動作を止めさせることもできると6章で説明した。このcvs_aclsはcommitinfoに設定することで、アクセス制御を行うことのできるPerlスクリプトである。availという管理ファイルを新たに作成し、独自の文法でユーザとアクセス可能なモジュールを細かく制御できる。cvs-1.10.8のcontribに含まれている。提供者はLowell Skoog。
historyファイルが大きくなりすぎたときに、お掃除して新しいhistoryファイルを作成するためのPerlスクリプト。最後のチェックアウト情報などを回収し、大きな不整合はでないようにする。CVS-1.10.8のcontribに含まれている。提供者はDavid G. Grubbs。
pserverのパスワード管理ツール。これとは別に、cvspwd2というのもある。
http://members.nbci.com/dewwy/
http://www.pajamian.dhs.org/:cvspwd2のホームページ
リポジトリにアクセスすることなく、作業コピーだけで、変更の状態を調べたり、前の状態に復帰したりするためのツール。ものによっては取り返しがつかなくなるものもあるので使用には注意すること。
一部の類似機能を提供するものに、cvs2htmlのサイトで配布しているcvschkがある。cvschkはオフライン状態でリポジトリにアクセスするのが困難な場合などに、アクセスしないで変化を調べるためのPerlスクリプトである。
http://www.red-bean.com/cvsutils/
FreeBSD開発支援のために開発されたCVSリポジトリのミラーリングツール。rsyncなどでリポジトリをただ丸ごとコピーしただけでは、それに加えた変更とオリジナルに加えられた変更が食い違ってしまう。そうした整合性の調整などを行ってくれる模様。転送アルゴリズムにrsyncのアルゴリズムを採用しているため速い。また、暗号化もしてくれるようである。Modula-3という言語で実装されているため、コンパイルにはこの言語のコンパイラが必要。もともとがFreeBSDで開発されたものだけに、Linuxで使用するには少々面倒である。CVSupのRPM自体はPostgreSQLのサイト配布されているので、それほど面倒ではないが、Modula-3のライブラリなどを用意するのが困難である。筆者はPolytechnique Montreal Modula-3(pm3)というパッケージの1.1.15のRPMを探して適当にいじって作成したが、動作の確認まではしていない。
http://www.polstra.com/projects/freeware/CVSup/
ftp://ftp.postgresql.org/pub/CVSup/:PostgreSQL提供のRPMのある場所
http://m3.polymtl.ca/m3/:Polytechnique Montreal Modula-3(pm3)のホーム
アクセスされたウェブページがCVS管理下にあった(つまり作業コピーであった)場合に、該当ファイルが更新されているかをウェブサーバがいちいちチェック(して更新)するようにするための、Apache ウェブサーバ用拡張モジュール。なお、アクセスできるリポジトリはローカルなファイルシステムにあるものに限られる。つまり、pserverなどでは動かない。また、上で紹介したようなウェブインターフェースとは全く違う。このプログラムはチェックアウトはしないため、チェックアウトはあらかじめしておく必要がある。
独断と偏見で選んだツールについて駆け足で説明をしてみた。詳細については、各ホームページなどを見てほしい。こんなものもあるのか、という参考になれば幸いである。
@保留というか以下は詳細不明のため破棄
URL?
http://versionweb.sourceforge.net/
Webページのバージョン管理を行うためのCGIスクリプト。
http://sourceforge.net/projects/ucla/
提供者は不明だが、拡張を施したのはJerry JelinekとBrian Berliner。