筆者が手掛けているplumは、sf.jpに来る前は、原作者によって別の場所でメンテナンスされていました。そして、ソースコードはCVSを利用して管理されていました。このようなソフトウェアの開発をsf.jpに移すときに、開発履歴がなくなってしまうと、古いソースに戻れなくなってしまいます。
別の場所で開発されていたソフトウェアをsf.jpに移すことになったとき、そのソフトウェアがCVSで開発されていれば、CVSリポジトリをそのままsf.jpに移すことができます。過去の開発履歴を消さずに済みますので、既存のCVSリポジトリがある場合はぜひ移動しましょう。
CVSリポジトリは、sf.jp管理者の手によって設定されます。そのため、sf.jpのサポート要求フォームを利用してサポート要求を出し、管理者に設定を依頼することになります。
まずは、既存リポジトリのアーカイブを用意しましょう。既存リポジトリのディレクトリをそのままtar+gzipでアーカイブします。以下では、plumのリポジトリplumをアーカイブしています。
% tar czf plum.tar.gz plum
次に、sf.jpシェルサーバ(shell.sourceforge.jp)のプロジェクト用の領域にこのアーカイブをコピーします。コピーはssh経由で行うので、さきほどのssh公開鍵が正しく登録され、シェルサーバにログインできなければなりません。アーカイブのコピーは以下のように行います。
% scp plum.tar.gz shell.sourceforge.jp:/home/groups/p/pl/plum/
「:」以降のディレクトリのパスは、プロジェクトごとに変わります。ディレクトリのパスはプロジェクト管理のページで確認できます。また、プロジェクトのUNIX名からも推測できます。上の例で予想がつくと思いますが、「/home/groups/」の後に、「プロジェクトUNIX名の頭文字/頭2文字/UNIX名」となります。例えば、sourceforgeプロジェクトのディレクトリは、「/home/groups/s/so/sourceforge」です。
コピーできたら、sf.jpのサポート要求に、リポジトリの展開要求を出します。サポート要求のページにアクセスし、以下の情報を含めて、トラッカーに登録します。
例:plum
例:/home/groups/p/pl/plum/plum.tar.gz
例:tach
例:tach@users.sourceforge.jp
sf.jp管理者がトラッカーを見て、当該プロジェクトのcvsrootに、このアーカイブを展開します。展開の仕方などに注文がある場合は、その内容をトラッカーの中に書いておきましょう。
さて、それではCVSにアクセスして、ソースをチェックアウトしてみましょう。開発者がアクセスするときは、ssh経由でアクセスすることになります。ソースを登録する際に説明しましたが、ssh経由でアクセスするには、環境変数CVS_RSHを指定してからcvsコマンドを実行します。また、チェックアウトにはcvsのcheckoutサブコマンドを使います。plumのソースをCVSからチェックアウトする場合は、以下のように実行します。
% export CVS_RSH=ssh
% cvs -d:ext:@cvs.sourceforge.jp:/cvsroot/plum checkout plum
自分のプロジェクトのCVSを使うときは、ユーザー名やプロジェクト名、リポジトリ名を適宜書き換えて実行してください。
開発者がCVSに変更をコミットしても、自動的にほかの開発者に変更が通知されるようなことはありません。ほかの開発者は、cvs updateなどを実行してはじめて変更があったことを知ることになります。
変更をすぐに知ることができないということは、すでに変更された個所に別の変更を加えてしまう可能性があるということです。例え変更したとしてもそのままではコミットできない(コミット前に変更点の競合を解決するよう促される)のでソースコードがおかしくなることはありませんが、同じバグ修正をしていたとしたらその時間は無駄になってしまいます。
そのような無駄を避けるために、コミットメールの設定をしておきましょう。コミットメールを設定すると、コミットしたときの情報(どのファイルに変更があるか、コミットログなど)がメールで送られてくるようになります。
なお、sf.jpの場合、Subversion利用時にはWeb上でコミットメールを設定できますが、CVS利用時には手作業で設定する必要があります。詳しい方法はsf.jpのサイトドキュメントに解説されていますので、それを参考に設定してみてください。
VA Linux Systems Japan(株)/ Debian Project
Copyright © ITmedia, Inc. All Rights Reserved.