このページは KernelPractice の翻訳です。

分散開発, Linuxカーネル方式

この方式では数人の中心的な開発者が他人から提供された変更点をチェックし、自分のリポジトリに統合していきます。通常それぞれの開発者がリポジトリを公開します。

個々のサブシステムはそのサブシステムのメンテナが面倒を見ます。そのメンテナがサブシステムの開発をし、サブシステムに関するほかの開発者からの変更を集積します。必要に応じてメンテナは自分のリポジトリを公開し、これでよいと思った時点で中央の開発者に自分の変更点をpullするよう依頼します。

サブシステムのメンテナは雑多なパッチを受けとり、それを吟味し受け取るか捨てるかします。

上流にマージしたい開発者はその上流のリポジトリの最新のリビジョンとの差分を作るようにします。こうすればマージが衝突する可能性を下げることができます。衝突してしまうとその差分が受け入られる可能性が低くなります。

リポジトリの寿命と種類

このモデルにおいて、ほとんどのリポジトリは短命です。典型的に開発者は以下の種類のリポジトリを使います。

チェンジセットの衛生状態

リポジトリが「クリーン」であるというのは、各変更が自己完結していて、謝りを作ってしまったチェンジセットを含まないことです。こうすることで更新履歴がミスで乱雑になることを防げます。(訳:ここは文章がわかりにくいのですが、おそらくバグを作りこんでしまったチェンジセットとそれの修正というチェンジセットが分かれていてはならないということでしょう)。

リポジトリが「クリーン」に保つのは少々面倒です。複数の変更をまとめて「クリーン」なパッチを作らなければならないからです。少なくともLinux kernelの場合においてはこれはそれほど重荷になっているわけではないようです。


CategoryJapanese