これは結構悩む話題だと思います。
リポジトリを増やしすぎるとバックアップが大変だったり、新規にプロジェクトを立ち上げるときにいちいちapacheの設定をしなくてはいけなかったりという欠点があります。
(まぁ普通は自動的にローテーションするでしょうが。)
また、ひとつにまとめてしまうと、認証の問題が出てきてしまうことがあると思います。
とりあえず詳細はここを。リポジトリレイアウトの選択
私自身、なんかの記事で「subversionはすべてのプロジェクトをひとつのリポジトリで管理すべきである」というのをみて、そのとおりにしていたのですが、プロジェクトが中程度になるとかかわる人の人数も増えていき、ここでひとつの問題が発生しました。
複数社のプロジェクトが同じリポジトリで管理されていたので、第三者がいる場合共有できない。
たとえば、A社B社から仕事を請け負っていて、そのときはすべて俺が一人でやったので両方同じリポジトリでよかったわけです。
もしくはsubversionの利用を拒否される(大抵、バージョン管理の重要性や情報共有の重要性がわかっていない会社は拒否する傾向がある)ので、俺がメールでもらって一人でコミットしていたので問題はなかった。
しかし、とてつもなく忙しくなってきて、少しでもデグレやコミュニケーションロスによる無駄を減らしたくなってくると、やはりみんなに覚えてもらおうという方向になるわけですね。
そのときに困りました。C社でそういったプロジェクト管理の方法をとったとき、A社B社のソースやドキュメントを見せるわけにはいきません。
なので、リポジトリを株分けしなくてはいけなくなるわけです。(方法はsvndumpfilterをつかいます。)
しかし困るのはこれだけではありません。
C社の仕事をひとつのリポジトリで管理していたとしましょう。
しかし別のプロジェクトC2が出てきたとき、そこに新たにデザイナを招くかもしれません。
そのデザイナにプロジェクトC1が見えてしまうのはあまり好ましくはありません。
なので、結局これも株分けすることになるかもしれません。
個人的結論としては、リポジトリはまず個人関連(レポートとか書類とかメモなど)とチーム関連に分ける 。
そしてチーム関連のリポジトリは、プロジェクトチームごとに作成するというふうにするのが一般的な気がしました。
これはsubversionがコラボレーションツールであるという点と認証という点から考えると当然なのかもしれませんが。
みなさんはどんな風にsubversionやコラボレーションツールを使っていますか?
追記:
最近、こういう話を考えるとき相談できる相手がいないので、困ります。
わりとこういうツールの効率的な使い方とか真剣に考えている人少ない。
One Response for "subversionのリポジトリレイアウトはどうあるべきか"
Subversionの場合に、 Apacheに「AuthzSVNAccessFile」を記述して設定ファイル内でアクセス権限が行えます。
私の場合にはこの方法で、ひとつのリポジトリを共有して運用したことがあります。関係する会社が同じサーバへアクセスする事が前提ですがね。。。