2009-05-13 18 views
1

私が始めようとする前に、私は多くのフォーラム(Stack Overflowを含む - はい、svnの整理に関する多くの質問があります)、Googleの検索、私はいくつかのSubversionの本を所有しています)。私はSubversionでコードベースを整理する良い方法をまだ見つけていません。私たちは現在、リビジョンコントロールシステムとしてRCSを使用しています。すべては1つのRCSディレクトリに格納されています - 醜いですが、私は知っています。私はSubversionもたくさん使っています。だから私はその能力とその仕組みを知っています。私は数ヶ月間この質問をすることをためらいました。なぜなら、それは完全にプログラミング関連ではないからです。しかし、私が解決策に出ることができなかったので、私の質問にはどんな良い場所がありますか?何千もの要素を持つSubversionリポジトリを整理する

私の頭の中には、「プロジェクト」という転覆用語が複雑になります。 SubversionでJavaプロジェクトを管理したい場合、これは私にとって理にかなっています.jarファイルに結合されるすべてのJavaファイルは、「プロジェクト」とみなすことができます。しかし、私たちの環境では、「プロジェクト」が何であるかを定義する簡単な方法はありません。私たちは4,000以上のプログラムを持っていますが、それらはすべて互いに独立しています。それらの多くはシェルスクリプトまたはperlスクリプトです。私たちのスクリプトの中には、一般的な "ユーティリティ"または "ライブラリ"スクリプトを使用するものがありますが、ほとんどの場合、すべてのコードオブジェクトは独立しています。

私たちの環境内の「プロジェクト」には、プログラムA、B、C、および設定ファイルAAが関係する可能性があります。別のプロジェクトでは、プログラムC、D、E、および設定ファイルBBを使用できます。さらに別のプロジェクトでは、設定ファイルAAやプログラムBを変更することができます。グループに属するプログラムやファイルを分類する方法はありません。このため、私はどのようにコードをSubversionに整理するのか分かりません。すべてをマスタープロジェクトのトランクに入れることができましたが、作業コピーをチェックするということは4,000以上の要素すべてをチェックアウトすることを意味します。

コンテキストを指定するには、これはデータウェアハウス向けです。ウェアハウス機能を作成するには、4,000以上のコード要素がすべて必要です。おそらく、いくつかの要素でアクセスされる列の変更が必要な特定のビジネス要件があり、別のビジネス要件では他のいくつかの要素(他のプロジェクトと同じものもあります)への変更が必要な場合があります。

私はそれが動作すると信じなければならないかもしれませんが、Subversionは私にとっては最適ではないかもしれません。 WebコードとJavaプログラム用のSubversionサーバーは既に用意されており、簡単に定義されたプロジェクトが存在するため、効果的です。私はメインコードライブラリをどのように編成するかを理解できません。

うまくいけばうまくいくものがありました。あなたの知恵を事前に感謝してください!

答えて

1

externalsのプロパティを参照してください。このプロパティがアタッチされているディレクトリのチェックアウトを定義することができます。また、リポジトリ内の他の場所をそのディレクトリのサブディレクトリにチェックアウトします。

各コンポーネントに「本当の」ディレクトリを作成し、必要なコンポーネントのチェックアウトに外部を使用するプロジェクトごとに別のディレクトリを作成することがあります。

+0

これはやや有望です。唯一の問題は、同じグループの要素(「外部」プロパティでグループ化されている)をグループとして再度処理する必要がないことです。そのグループの要素は、別のグループの要素と一緒に作業することができます。たぶん「一度の外部」が必要なものなので、いくつかの要素を「プロジェクト」としてアドホックにチェックすることができますが、その「プロジェクト」を再び使用することはありません。 – BrianH

+0

それは、物事がある時間。毎回各開発者が独自の組み合わせを必要とする場合は、外部とのマッチがよくありません。より多くの開発者が同じ構成を使用する場合は、プロジェクトの開始時にディレクトリを作成し、必要がなくなったときに削除することができます。 – Komat

+0

ほとんどの場合、各開発者は毎回独自のコンビネーションを必要とします...同じ要素グループが繰り返し必要となることはめったにありません。 – BrianH

0

私はファイルのフォルダ構造を整理して、単にそれをSubversionリポジトリにダンプするだけです。

あなたの問題は主に既存のファイルの混乱にあると思います。あなたのシステムを論理的にセグメントに分割する方法が見つかると、(論理的なグループ分けの)ファイルのチャンクだけをチェックアウトできるようになります。

Subversionは実際にはファイルシステムをミラーリングしているので、ファイルシステムでは見た目が綺麗でない場合は、Subversionでも見た目には見えません。

ファイルを再構成しないようにするには、ファイルシステム内の場所ではなく、タグに基づいて物事をチェックイン/チェックアウトできるバージョンコントロールシステムがあります。

+0

私は現在のライブラリが混乱していることに同意します。唯一の問題はファイルを分割する簡単な方法がないことです。いくつかの部門がありますが、私たちのプロジェクトの中には、各グループの要素が1つでも終わることがあります。そして、私たちは同じボートに戻ってきたと思います。 – BrianH

+0

一般的な閉鎖でグループ化します。これはオブジェクト指向設計のObject Mentorの原則によく記述されています。一緒に変化するものはグループ化する必要があります。 –

関連する問題