2012-01-24 8 views
2

Netbeansを使用してSubversionと作業し、異なるバージョン(ブランチ)のコードを維持するのが簡単ではないかと考えています。Netbeansを使用したSubversionと複数のバージョンの良いプラクティス

現在、Netbeansで管理されているコードの単一バージョンでSourcesafeを使用しています。今はより多くの顧客がいるため、異なるバージョンのソフトウェアを維持する必要があります。

私がSubversionで理解しているように、コードのメイン/ワーキングブランチであるトランクフォルダがあります。次に異なるバージョンが必要な場合は、ブランチの下にコードをブランチします。だから、物事が将来的に見えるかもしれ方法を考え、次の階層が使用されることがあります。

product\trunk 
product\branches\version 1.0.0.0 
product\branches\version 1.0.0.1 
product\branches\version 1.0.0.2 
product\tags 
トランクの下

と各バージョン(つまり、バージョン1.0.0.0、バージョン1.0.0.1、およびバージョン1.0.0.2)あなたは同じを持っています

src 
lib 
test 

libには、サードパーティによって開発されたプロジェクトで使用されるJARファイルが含まれています。 srcには、アプリケーションで使用される数十万、数千のソースコードクラスが含まれます。テストには、同等のソースコードクラスのテストクラスが含まれていることを願っています。

nbprojectは、Netbeansがさまざまなプロジェクト設定を保存するために特に使用するフォルダです。 Netbeansは通常、コンパイル済みのJARファイルであるアプリケーションをコンパイルするときにdistフォルダを作成し、libフォルダで参照するJARファイルを作成します。

が質問のいくつかあり、私が持っている:

  1. バージョン管理にlibにnbproject、フォルダおよびdistフォルダを追加しない何らかの理由はありますか?
  2. Netbeans内で異なるバージョンのコードを維持する場合、ソースコードの各バージョンごとに個別のNetbeansプロジェクトを作成する必要がありますか?だから、基本的に、あなたのプロジェクトを持っているでしょうNetBeansで表示:

    • 製品トランク
    • 製品バージョン1.0.0.0
    • 製品バージョン1.0.0.1
    • 製品バージョン1.0.0.2
    • ...以下のように...
    • 製品バージョンXXXX

私が見たことから、SubversionはSourcesafeや他の多くの優れた機能よりも優れたマージ機能を備えています。もう一つの大きなプラスでもあるNetbeansと統合されています。私はすでにトランクと単一の分岐バージョンを持つテストリポジトリを作成しました。ここでは、分岐したバージョンからトランクにファイルをマージして、同じファイル内に多数の競合があります。

答えて

1

通常、ディレクトリ名とファイル名に空白を使用しないようにするため、スクリプト機能が向上します。スクリプティングは当面の懸念事項ではありませんが、あなたはそのような便利なツールにドアを閉めたくありません(将来必要な場合)。

だから、これを試す代わりに1がトランクからコピーすることで、1.0.0ブランチ「を作る」

product/ 
product/trunk 
product/branches/1.0.0 
product/tags/1.0.0.1 
product/tags/1.0.0.2 
product/tags/1.0.0.3 

。 1.0.0ブランチを安定化している間に、1.0.0ブランチを怒らせることなく、1.0.1,1.1、または2.0の作業をトランク内で継続できます。

1.0.0のコピーを "解放"する準備ができたらブランチでは、 "リリース"番号が増加する "tags"ディレクトリにコピーします。それを「タグ」にコピーした直後に、サーバーを再構成して1.0.0.1、1.0.0.2などの更新を許可しないようにする必要があります。そうしないと、リリースしたものの有効なスナップショットが作成されません。

これは、物事を行う方法の1つで、非常に一般的な方法です。つまり、多くのバリエーションがあり、あなたのニーズに合った改善が見つかるかもしれません。

0

ノート

  • ツリーのレイアウトとのdirsの名前は単なる条件付き合意している、あなたはメインライン/ vesions /代わりに、トランク/支店/タグのFEを解放することができ、すなわち、(マージ/コピーがいずれかで動作しますURLをは)
  • 支店普通ので、WIPのためにいくつかの(長い)時間を使用 - 分離枝をごとに、ではない私が見る(ほとんどの時間)、「ブランチ・-あたりマイナー」政策を構築

答え

  1. nbprojectフォルダのカップル - 、私は3パーティの開発者のためにどれだけそれが使用可能な、それに格納されたデータを知りませんが、SCMのための一般的なルールは、「データだけをバージョン管理されましたは、新しい場所の地面からのプロジェクトで作業を開始するには、でなければなりません。 nbprojectに固有の設定や職場固有の設定のみが含まれている場合は、リポジトリの保存から除外することができます。
  2. nbprojectの設定がバージョンごとに異なる可能性があり、設定を保存しない?)/各バージョン/ブランチのレポの内部が、「味が異なる場合があります」 - あなたは
  3. 問いませんが、答えあなたの方法をテストして検出する必要があります - distのフォルダをもバージョン管理からを除外しなければならない - ビルドの成果物ソースコントロール(再製作されたリビジョンではいつでも簡単に再作成できます - 「共通ルール」に関する回答N1を参照)
関連する問題