- 締切済み
SUBVERSIONを使った一般的なリリース管理、運用ルールについて
SVNを使ったリリース管理、運用方法について教えてください。 現在、CVSを使って大規模プロジェクトのソース管理及びリリース管理を実施しています。 その方法は大まかに以下のような仕組みとルールで実施しています。 (1)複数の製造者→自分に必要な資材をチェックアウト→適宜修正→自由にコミット (2)リリースすべき資材のリビジョンの特定 (人間系でEXCELの一覧作成 タグ番号1つに対し、複数ファイルの、ファイル名、リポジトリ上のパス、特定リビジョンを記載) (3)製造者は上記(2)のリリースすべき資材の特定リビジョンへのタグ付け 上記(2)のEXCEL一覧からcvs tag コマンドを自動生成するツールを利用 (4)上記(2)のEXCEL一覧をリリース担当者へ提出 (5)リリース担当者は、上記(4)で受け付けたEXCEL一覧に記載のタグ番号をキーに CVSエクスポートし、共通のコンパイル環境へソースを持ち込みコンパイル (6)コンパイル後の資材を、リリース先の環境へ適宜反映(反映方法等はここでは割愛します) -----ここから本題----- CVSとSVNの差異(SVNでのリビジョン、タグ・ブランチの概念の違い)については、一通り関連サイトを調べて理解しました。 CVSで実施していた上記(1)~(6)は若干面倒ですが、以下のメリットがありました。 ・(2)によって製造元が自分が何をいつリリースしようとしているかソース単位で把握させることができる ・(3)によって複数の人間が修正した複数の資材の様々なリビジョンにひとつのタグをつけてくくれる。 ・(5)によってリリース担当者は製造元が依頼したソースをタグによって間違いなく取得できる。 これらは、数百人以上の製造者が数十のグループにわかれて製造を実施するようなシステム開発においては、リリースコントロールの面で一定の作業品質を保つためにはそれなりに有効でした。(シンプルな運用ルールなので作業にばらつきがあまり出ない。) ★悩み事★ SUBVERSIONでは、 ・リビジョンは常にある時点でのツリー全体のスナップショットである。 ・異なるリビジョンには同一名のタグは付与できない。 ・タグを付与する際に選択したディレクトリ配下のサブディレクトリ及びファイルにしかタグが付与されない。 (CVSでは、タグ指定のCVSエクスポート時に選択したディレクトリ配下は空の階層も含め全て取得できた。) このため、リリース担当者側が資材を受取りコンパイル環境に持込みコンパイルする作業がかなり非効率になります。 一度に複数のグループからLIB管担当に対してリリース依頼を行うような運用体制を前提にしなければならない前提でも、 SVNでは、リリース時の資材の受渡しにおいて、タグを使用せず、リビジョン番号だけ通知するほうがよいのでしょうか?
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- shigatsu
- ベストアンサー率26% (511/1924)
SVNは比較的なんでも自由にできてしまうために明確な運用ルールが必要になってくるのではないかと思います。 また、CVSとSVNは目的は似てますが異なったシステムですから、同じ運用ルールでは無理が生じます。タグの考え方も異なるのではないかと思います。 ブランチの概念は理解されているということなんですが、だとしたら数十のグループに分かれての開発はブランチを使えば良いのではないでしょうか? 例えば「ブランチを作ったチームはトランクへの適用まで責任を持って作業を行う」なんて運用ルールを作るのはいかがでしょうか? そうすれば、リリースは常にトランクにつけたタグから行えると思います。 予断になってしまいますが、運用ルールや複数できるであろうブランチの管理、変更作業の明確化などを踏まえてTracの導入などもお考えになられることをオススメします。 SVN,Wiki,BTSが連動するので、BTSのチケット情報から変更点の洗い出しなどができますし、SVN単体ではなかなか把握できないリビジョンごとの変更点をチェンジセットという形で視覚化することができます。