0

私は現在 Bazaar で実験を行っており、開発者チームと現在取り組んでいるプロジェクトに適した構成を見つけようとしています。私たちのモデルは現在中央集権化されていますが、大きなメリットが見られる場合は、これを変更することに同意します。提唱しているにもかかわらず、バージョン管理システムを変更することはできません...自分にとって何が良いのか分からない人もいます。

現在、プロジェクトはいくつかの層に分かれています。これは Web プロジェクトであり、データ アクセス レイヤー、ビジネス/ドメイン ロジック レイヤー、および Web レイヤー (およびドメイン上にあるサービスなどの他のアプリケーション レベル プロジェクトの束) で構成されます。

現在、私が言及した層ごとに 1 つずつ、多数の作業ツリーがある bazaar リポジトリを見つけました。

質問パート1

各層のリポジトリ内で作業ツリーを使用するより良い方法はありますか?

私が考えたこと

  • すべてを 1 つのファット ブランチ/ワーキング ツリーに配置します (すべてをチェックする必要があるため、これは意図的に回避されたと言われています)。開発者は、複数のリポジトリのサブセットをチェックアウトして、独自のローカル セットアップを作成しています。たとえば、サービスの 1 つに取り組んでいる場合、サービス、ビジネス レイヤー、およびデータ アクセス レイヤーをローカル ディレクトリにチェックアウトします。ただし、現在のセットアップでは、サイズがほぼ 1 GB のリポジトリ全体をチェックアウトすることなく、他に何にも影響を与えない最上位のアプリケーションをチェックアウトし、それに変更を加えてコミットし直すことができます。

改善したいこと

  • 問題は、Web 層がビジネス層のバージョンに依存しており、ビジネス層がデータ アクセス層に依存していることです。このように編成されたプロジェクトでは、Web レイヤー上の特定のコミットに対して、ビジネス レイヤーとデータ アクセス レイヤーのどのバージョンが最新であったかわかりません。これは私にはとても気分が悪いです。作業ツリーの 1 つへのコミットに関連して、アプリケーションのバージョンをチェックアウトできるようにしたいと考えています。現時点では、タグ付けを使用してすべての作業ツリーでこれを追跡しようとしていますが、私にはかなり間違っているように感じます.

質問パート2

リリース ブランチ用にこれらの層の 1 つをブランチし、ブランチのルートの変更をそのリリースに含める必要があることがわかった場合、必要な変更のみをブランチにプッシュするにはどうすればよいですか?

したがって、これらのプロジェクトごとに 1 つのワーキング ツリー (または実際のブランチ) の構造が存在すると仮定すると、特定のリリースのバージョンを含むこれらのプロジェクトごとにブランチが必要になります。そのため、Web サイト ツリーには website_rls1 ブランチがあり、その特定のリリースの開発状況がカプセル化されています。後のリリースに向けた一般的な開発は、同時に行われる予定です。したがって、多くのファイルのうちの 1 つがたまたまこのリリースに関連している場合、その 1 つのファイルを私のリリース ブランチにマージしたいと考えています。これを行うための好ましい方法は何ですか。私が理解しているように、Bazaar は個々のファイルのマージ/プルをサポートしていません。

私が考えたこと:

  • 必要なファイルをリリース ブランチのローカル チェックアウトに入れ、コミットするだけです。

改善したいこと:

  • この考慮事項に従うと、このファイルのバージョン情報が削除されます。バージョン情報をそのまま維持したいが、変更のサブセットのみをマージしたい。私は基本的に、個々のファイルを子ブランチにプッシュするか、何かの効果を上げたいと考えています。

どんな考えでも大歓迎です。

4

1 に答える 1

2

#1複数の依存 bzr リポジトリを管理するための 2 つのプラグインがあります。

  1. https://launchpad.net/bzr-externals
  2. https://launchpad.net/bzr-scmproj

それらにはさまざまなアプローチがあり、さまざまな状況に適しています。

この問題をビルド レベルで解決することも検討してください。Jenkins のような継続的インテグレーション システムと、Ivy や Maven のような依存関係解決システムを使用します。QA は、このシステムの自動ビルドを使用して行う必要があります。これにより、バグが特定のビルド番号を参照し、そのビルドの生成に使用されたさまざまな依存関係のバージョンがログに含まれるようになります。


#2そのマージを行う方法は実際にはありません。Bazaar は (まだ) チェリーピック マージを追跡しません。より良いアプローチは、リリース ブランチで元の修正を行い、それを親にマージすることです。

于 2012-04-11T01:26:00.867 に答える