2009-06-15 3 views
2

私は実行しているオープンソースプロジェクト用のバージョンコントロールのレイアウトを再編成する段階にあります。その時点で誰もプロジェクトを使用していないので、私は入り込み、レイアウトを整理します人々がそれを使いたい場合には維持して使用するのが少し楽です。どのバージョンコントロールレイアウトが良いでしょうか?テストを含むプロジェクト

私はさまざまなレイアウトについていくつかの読書をしてきましたが、テストを持つプロジェクトを扱うものは実際には見つかりませんでした。私は働くかもしれないと思う2つの異なったレイアウトを思いついたが、どちらが良いかを決めることはできない。

alt text http://img31.imageshack.us/img31/2765/projectlayout2.jpg

各プロジェクトフォルダにlibフォルダは、プロジェクトをコンパイルする必要がコンパイルされたバイナリが含まれています。 ProjectA.Examples.Libフォルダには最新の安定したProjectAのコンパイル版が含まれています。

どのレイアウトが良いと思いますか?

2)1)以上の利点はProjectAにテストが含まれているため、テストなしでProjectAをプルダウンすることができず、テストを分岐またはタグ付けする場合です。

EDIT私は最初に意図したことを示すために写真を編集しました。それを指摘してくれてありがとう@Esko Luontola。

答えて

5

テストは、実行するコードと一緒にバージョン管理する必要があるため、(2)はより意味があります。それらを同じ階層にまとめることで、陳腐化問題の可能性が減り、開発サイクルの早い段階で競合が発生します。


注:ザ・OPはtestsディレクトリが実際にtrunkの下でなければならないことを明らかにしました。

1

あなたのような何か試してみてください:

  • タグ

    • プロジェクト
      • PROJECTAを
      • トランク
        • この組織は、実際にあるそのテストサンプル(含む、プロジェクト全体を保持します
        • libのドキュメント
        • SRC
        • テスト
        • サンプル

プロジェクト全体の一部)を、ソース管理の単一のバージョン管理されたツリー内に配置します。

+0

私はそれをやろうとしていましたが、サンプルにはデモ用の大きなファイルが含まれている可能性があり、ProjectAのソースコードを編集するたびにチェックする必要はありません。 –

+0

次に、 */Project/ProjectA/trunk /内の*あなたのプロジェクトのより複雑なディレクトリ構造。しかし、変更を行うたびに、すべてのサンプルがコンパイルされ、サンプルのすべてのテストがパスするようにすることをお勧めします。ツリー全体をチェックすることでこれを達成するのが最も簡単です。 – yfeldblum

2

ソースコードとテストは、ともにトランクの下で一緒に行う必要があります。だから、SVNリポジトリ内のレイアウトは次のようになります:

  • PROJECTA
    • タグ
    • トランク
      • SRC
      • テスト
      • libに
  • PROJECTA-例
    • タグ
    • トランク
      • SRC
      • libに

もう1つの可能性は、メインコードベースとともにサンプルを格納することです。例が小さく、メインコードベースとともにサンプルを再配布すると、これは意味をなさないでしょう。

  • PROJECTA
    • タグ
    • トランク
      • SRC
      • テスト
      • libの例
      • 一方

例は中規模のサンプルアプリケーションであれば、その後、それぞれの例では、独自のプロジェクトとして最高のかもしれません。

+0

私の悪い、テストは幹にあるはずだったが、私はイメージを詰め込んだ。 –

関連する問題