git submodule

gitでは、subversionのようにリポジトリの一部分だけをチェックアウトすることはできません。つまりgit cloneではツリー全体のコピーを作ることになります。こうすると当然、大きなソースツリーでサブモジュールをいくつも持つようなプロジェクトでは、サブモジュールの開発者にとってはいらないものまでコピーを持つことになります。gitではこのような状況に対応するためにsubmoduleという機能があります。これはあらかじめリポジトリを複数用意しておいて、都合のよいように接木して全体を構築するという仕組みです。うまくリポジトリを分けておきさえすれば、一部分が欲しい人はサブリポジトリだけcloneすればよいというわけです。
More Emacsでは本体以外はfeatureとupdate-siteくらいなので、1リポジトリにすべてをいれてしまいましたが、大きなものを作るときは事前に考えておかないといけないのですね。
この機能できれば、リポジトリを複数個つくるのではなく、かつてのCVSのようにリポジトリの直下に複数のモジュールという単位があってその下にブランチがあるとよかったなぁと思いました(見方を変えれば、複数のリポジトリをまとめるリポジトリクラスタのような機能)。現状の仕組みだとサブモジュール用のリポジトリを増やして接木しようと思ったときには、gitの外側にリポジトリを増やす仕組みを作らなければならないので面倒だなと。
ちゃんと調べたわけではないので、そういう拡張がすでになされているかもしれませんが。