Develop and Download Open Source Software

Recent Changes

2012-02-13
2012-01-10
2011-11-18
2011-11-07
2011-08-08

Wiki Guide

Sidebar

コミットメールの送り方

開発者がひとりのうちは、ソースの修正を自分だけで行っているので、どんな修正をいつしたか、すべて把握できます。しかし、開発者が複数になると把握は難しくなります。CVSを利用すれば、変更点などを記録できますが、CVSアクセスするまで、変更が行われたことを知るすべはありません。

CVSには、commitしたときに任意のコマンドを実行する機能があります。その機能を利用して、commitしたときにメールを送るようにすると、だれかがcommitしたときに、ほかの開発者がそのことを知ることができるようになります。

このドキュメントでは、コミットメールを簡単に設定する方法を解説します。

設定してみよう

1. 設定ファイルをcheckoutする

コミットメールを送るには、設定ファイルに書き込まなければなりません。設定ファイルはあらかじめCVSサーバーに用意されているので、それをcheckoutします。開発者向けCVSアクセスで、「CVSROOT」モジュールをcheckoutしてください。

cvs -z3 -d:ext:developername@cvs.sourceforge.jp:/cvsroot/projectname co CVSROOT

2. 設定を追加してcommitする

設定は、CVSROOT/loginfoに以下のように記述します。

modulename /usr/local/bin/cvs-commitmail -m your@mail.address "%p %s"

「modulename」はコミットメールを送りたいモジュール名、「your@mail.address」はコミットメールを送りたい送り先です。「-m your@mail.address」は複数書けますので、複数アドレスに送りたい場合は続けて書きましょう。また、すべてのモジュールに対してコミットメールを送るときは、「modulename」の代わりに「ALL」を使うと、すべてのモジュールにマッチします(よくわからない場合は「ALL」にしておくのがよいでしょう)。「modulename」には正規表現も使えます。

終わったらcvs commitでコミットしてください。これで設定は完了です(簡単でしょ?)。設定したモジュールに対してcommitしてみてください。メールが送られます。

変更点(diff)を添付したコミットメールを送るには

コミットメールには、そのコミットによる変更点を添付することができるようになりました。上記のコマンドを以下のように修正することにより、コミットメールがdiffつきになります。diffはMIMEマルチパートで送られてきますので、保存することでそのままパッチにすることができます。

modulename /usr/local/bin/cvs-commitmail -d -m your@mail.address "%p %{sVv}"

プロジェクトによっては、CVSROOT/configに以下の設定を記述する必要があります。CVSROOTモジュールをチェックアウトして、記述があるかどうか確認してください。

UseNewInfoFmtStrings=yes

コミットメールの送り先をメーリングリストに!

開発者が増えたり減ったりするたびに、コミットメールの設定を変更するのは大変です。また、正式な開発者ではなくても、コミットメールを受け取りたいユーザーもいます。SourceForge.JPのメーリングリストを利用して、コミットメールを出してみましょう。

1. メーリングリストの作成

SourceForge.JPのWebインターフェイスでメーリングリストを作りましょう。メーリングリスト名は何でもいいですが、たとえば「projectname-cvs」とします。

2. メーリングリストの設定

そのままでもいいですが、コミットメール専用のメーリングリストに普通のメールや迷惑メールが来るのは好ましくないので、いくつか設定をしておきましょう。たとえば、「Reply-To:を開発用メーリングリストに指定」したり、「投稿には管理者の承認が必要」にして、コミットメールの送りもと(developername@users.sourceforge.jp)からのみ、許可なしで投稿できるように設定します(必須ではありません)。

3. コミットメールのアドレスに登録

はじめにやったように、コミットメールの送り先を作成したメーリングリストに設定します。これで、メーリングリストに登録すれば、コミットメールが送られるようになりました。