Gentoo Logo

Gentoo新人開発者教育

目次:

1.  CVSを利用する

はじめに

このガイドをCVSの利用マニュアルにするつもりはありません。 CVSの利用に関しては、CVS infoページやhttp://www.gentoo.org/doc/en/cvs-tutorial.xml(日本語訳)を参照してください。 代わりに、このガイドでは特にGentooのebuildツリーにおけるCVSとRepomanの利用を中心に説明していきます。

設定

普通、~/.cvsrcに以下の行があれば十分です。

コード表示 1.1: ~/.cvsrc

cvs -q -z0
diff -u -b -B
checkout -P
update -d -P

ダイジェストが正しいか確認するために、FEATURES設定にはcvsを設定してください。

最後に、CVS利用者の多くは圧縮(-z#)を使うでしょう。 ダイヤルアップ接続でない開発者は-z0を使うようお願いしています。 CVSリポジトリの内容やCVSサーバの負荷にもよるので、圧縮しなくても速度が向上していることが実感できます。

チェックアウト

GentooのCVSリポジトリには有用なモジュールがいくつかあります。 ebuildは、gentoo-x86モジュールに保管されています。 gentoo-srcモジュールには、実用的なプロジェクトから不活発なプロジェクトまで様々あります。 gentooモジュールには、Webサイト用のXML、ドキュメント、開発者のディレクトリ、開発者の画像用などがあります。

コード表示 1.2: gentoo-x86をチェックアウトする

# cvs -d username@cvs.gentoo.org:/var/cvsroot co gentoo-x86

ツリーで作業をする前には常に、アップデートして変更をチェックし、パッケージの衝突を防ぐとよいです。 ツリー全体をアップデートしたくなければ、ツリーの任意のサブディレクトリだけをアップデートすることもできますが、ときどきツリー全体をアップデートしてください。

コード表示 1.3: gentoo-x86でアップデートする

# cd gentoo-x86
# cvs update

追加と削除

もしapp-miscのfooという新しいパッケージを追加する準備ができている場合は以下の通りにします。

コード表示 1.4: 追加例

# cd CVSROOT/app-misc (CVSROOTを、あなたがチェックアウトしたCVSツリーの位置に変更してください)
# cvs update (ツリーの一部で作業する前には必ずアップデートしてください!)
# mkdir foo
# cvs add foo (ここで、CVSリポジトリにfooパッケージディレクトリを追加します)
# cd foo
# cp /path/to/foo-1.0.ebuild ./ (あなたのCVSツリーの外側のoverlayに、作業中のebuildを保存しておくとよいでしょう)
(ChangeLogを忘れずに作成しましょう。作成については、echangelogのmanページを参照してください)
# ebuild foo-1.0.ebuild digest (ダイジェストを作成する場合は、PORTDIR_OVERLAYにCVSディレクトリを設定していることを確認してください)
# cvs add foo-1.0.ebuild ChangeLog files
# cvs add files/digest-foo-1.0 (FEATURES=autoaddcvsとするとこれをやってくれます)

また、必ずmetadata.xmlファイルにメンテナ情報を追加してください。 詳しい情報は、metadata guideをご覧ください。

この時点で、コミット(commit)する準備はできています(後述のセクション、コミットを参照してください)。 でも、foo-1.1がリリースされたときにfoo-1.0を削除したい場合はどうすればよいでしょうか?

コード表示 1.5: 削除例

# cd CVSROOT/app-misc/foo
# cvs update
# rm foo-1.0.ebuild files/digest-foo-1.0 (まずファイルを削除しておくべきです)
# cvs remove foo-1.0.ebuild files/digest-foo-1.0

ということで、コミットする準備ができました(後述のセクション、コミットをご覧ください)。

コミット

CVSにコミットする場合、cvs commitよりrepoman commitを使うほうが多いです。 repomanは、基本的なチェックを実行し、manifestを作成する品質保証(QA)ツールです。 もしrepomanの出力がサッパリ理解できないなら、man repomanを見てください。 また、鍵のパスフレーズを繰り返し入力することにうんざりするかもしれません。 そこで、keychain(http://www.gentoo.org/proj/en/keychain.xml)が手助けになるでしょう。

コード表示 1.6: commit例

(repomanを実行する前に、現在のディレクトリにrootが所有するファイルが無いことを確認してください)
# repoman scan ("scan"は、現在のディレクトリに品質保証上の問題があるか調査します。"full"はさらに徹底的にやります)
# repoman commit ("commit"は、scanしてからコミットします。また、ダイジェストも更新します。詳細かつ有用なcvs changelogメッセージを利用するか確認してください)

2.  雑則

mirrorにファイルを置く

新しいファイルをGentoo mirrorのdistfilesに置く手続きはとても簡単です。 dev.gentoo.org/space/distfiles-localに新しいファイルをコピーしてください。

メール

開発者が自分のメールを管理できるインフラがあります。 http://www.gentoo.org/proj/en/infrastructure/dev-email.xml(日本語訳)には、@gentoo.orgメール設定の説明があります。

休暇

Gentoo開発者は休暇を取ることがよくあります。大学の試験やハネムーンでは開発から少し離れる必要があるでしょう。 Gentooから離れた生活を過ごすのは歓迎ですが、開発から離れたこと、戻ってきたことは把握しておきたいです。 開発から離れるときには、自分が係わっている開発グループ(例えばgentoo-releng@gentoo.orgであったりsparc@gentoo.orgであったり)に連絡してください。 あなたが開発から離れたことをグループに知らせ、不在時にパッケージを更新する必要がある場合には彼らに連絡が行くでしょう。

コード表示 2.1: 休暇の例

(開発から離れるとき、あなたのhomeディレクトリで…)
# touch ~/.away
# echo "I've gone to the mountains, will be away from June 29 - Aug 4th, \
contact zhen, cshields, or klieber in my absence." > ~/.away
(訳注:「山に行ってます。7月29日から8月4日までは不在です。不在中の連絡はzhenあるいはcshieldsもしくはklieberまでお願いします」という文をechoしています)
(これで、http://dev.gentoo.org/devawayにスクリプトによる不在通知が出ます。このページは一時間ごとに更新されます)

(開発に戻るとき)
# rm ~/.away


印刷

ページの更新日 24 April 2005

要約: Gentoo新人開発者向けの教育です。

Jon Portnoy
Author

Jeffrey Forman
Author

池田 健吾
翻訳

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.