2

この組織は、Visual Source Safe から Subversion への移行を検討しています。VSS の現在のアプローチでは、同じ 1 つのローカル Netbeans プロジェクトを使用して dev、qa、およびリリース コードを処理し、ローカル プロジェクト (P:\test など) から適切な VSS プロジェクト (dev など) に変更をアップロードします。オンラインで見ると、SVN が共有コード ベース (例: here、またはhere ) を指していることを説明しているリソースがたくさんありますが、これは、他のものと同様に、単一のコード ベースが複数を指すのではなく、複数のプロジェクト間でリソースを共有しているようです。リポジトリ上のプロジェクト。

私の直感では、VSS のアプローチを複製しようとするよりも、各プロジェクト (つまり、dev、qa、およびリリース) が特定のリポジトリをローカルにポイントし、移動する必要があるファイルを dev から qa にコピーする方がよいと考えています。複数のリポジトリ コード ベースを保持するために使用される 1 つのローカル プロジェクト。どんな意見でも大歓迎です!

4

1 に答える 1

0

Subversion は、リポジトリ間でのファイルのコピーをまったくサポートしていません。同じプロジェクトのために 3 つのリポジトリを維持することは、狂気への降下です。

また、「複数のコードベース」も必要ありません。すべて 1 つのコードベースです。変更を dev から qa、release に移動するための明確なプロセスが必要です。そのためには、タグとブランチの組み合わせが必要です。定期的な変更のマージ。正確な実装は、アプリケーションの開発をどのように管理するかにかかっており、いくつかの変更が必要になる場合があります。VSS での作業で学んだことをすべて忘れなければならないからです。

次の仮定を使用します。

  • アクティブな開発中、すべての開発者は共通のコードベースで作業します
  • 「OK、ここにあるものは QA テストの準備ができています」と言う方法があります。
  • QA にあるもののバグを修正しながら、開発を継続する必要があります。
  • 何かが本番に移行すると、プロセス全体を経ずに本番にあるものを変更することはできません(これがないと、いつか混乱するでしょう)

次のことをお勧めします。

  1. マニュアルの説明に従って、「従来の」トランク/ブランチ/タグ構造を作成します。すべての開発者は、通常の開発作業のためにトランクからチェックアウトします。本当に、マニュアルのこの章全体を (2 回) 読んでください。これは、私がここで説明しているもののより長く、より詳細なバージョンです。
  2. リリースを QA にプッシュするときが来たと判断したら、トランクを の下のディレクトリにコピーしてブランチを作成しますbranches。これにどのように名前を付けるかはあなた次第ですが、明確で一貫したものにしてください。たとえば、リリースの名前を 4.2 にするために分岐している場合は、それに名前を付けることQA-4.2ができます (次に 4.3 に分岐するときは、名前を付けますQA-4.3)。
  3. QA テストでバグが見つかった場合は、QA-4.2ブランチに対するパッチとして修正します。これを担当している人は誰でも、2 番目の作業コピーをチェックアウトして、これらの変更を行い、ブランチにコミットする必要があります。
  4. QA ブランチで作成したパッチを定期的にトランクにマージします。そうしないと、4.2 で修正したバグが 4.3 ですぐに戻ってきます。
  5. QA のコードがすべてのテストに合格し、本番環境に適している場合は、QA ブランチをtagsディレクトリにコピーしてタグを作成します。tags/4.2-RELEASEおそらく、QA で行っていたことと一貫性を持たせ、名前またはそれに近い名前を付けたいと思うでしょう。そして、新しいバージョンをリリースします。
  6. おそらく今がsvn merge --reintegrateブランチで使用するときです。その後、ブランチを削除してください。コードがリリースされました。現在、次のバージョンに進んでいます。
  7. tagsディレクトリにあるものは変更されません。誰かが本番環境でバグを見つけた場合、新しい開発と同じようにそれに取り組みます。そうしないと、これらの変更がトランクに戻ることができず (誰かが非常に注意深く監視していない限り)、バグが再発します。

Subversion プロジェクト自体がリリース ブランチを作成および維持する方法も参考になる場合があります。

于 2013-08-06T01:48:53.567 に答える