2011-12-30 3 views
1

SVN、Git、さまざまな分岐モデル(機能ベース、リリースベースなど)のようなバージョン管理システムに関する多くの記事を読んでいましたが、プロジェクトの要件。一般的なフレームワークベースの異なるアプリケーションの開発に最適な分岐モデルの選択

私たち(チーム)は、さまざまなアプリケーションの中核として使用されるフレームワークを開発しようとしています。したがって、そのフレームワークには1つのフレームワークと複数の異なるアプリケーションが構築されます。各アプリケーションには通常のプロジェクトサイクルがあります:ビルド、リリース...フレームワーク自体はリリースされませんが、異なるバージョンのタグが付いている可能性があります。アプリケーションの開発中に、フレームワークにいくつかの共通の機能をコミットする必要があります(機能が優れており、将来のアプリケーションでそれが必要な場合)。

各アプリケーションはフレームワークの別個のブランチのようですが、別のアプリケーションであるため完全に元に戻されることはなく、フレームワーク(トランク)にコミットする必要があります。そのようなコミット(ブランチ全体をトランクにマージしない)のようなオンライン記事は、ネガティブな例を示しているので、われわれは混乱している。

このような開発サイクルでは、どのバージョン管理システムと分岐モデルをお勧めしますか?

答えて

1

したがって、各アプリケーションは、フレームワークの個別の枝のようなものですが、それは は完全に(それは別のアプリケーションだから)バックマージされていない とフレームワーク(トランク)にいくつかのコミットを行う必要性があることはありません。いくつかのオンライン 記事では、そのようなコミット(ブランチ全体をトランクにマージせずに)は というネガティブな例を示しているので、私たちは混乱しています。

この部分は私に少し怖いです。フレームワークを使用する場合は、他のコードと同様に扱う必要があります。また、既存のリリースのメンテナンスや将来のリリースでの作業を除いて、複数のバージョンを実行したくない場合もあります。だからあなたの "アプリケーション"プロジェクトはそれぞれ、アプリケーションの必要に応じてフレームワークを変更するブランチを持つことができますが、フレームワークトランクを頻繁に更新して、すべてのアプリケーションのニーズに最適な方法で進化させることをお勧めします。一般的に、コードを分岐するときは、マスターと同期して、できるだけ早くマスタにコードを戻して、多くの作業処理のマージを回避し、他の人に作業のメリットを与えたいとします。

gitやhgのようなDVCSを使用している場合は、別の領域(またはリポジトリ)にフレームワークを配置して、別個のものにする必要があります。

最近ではDVCSが大流行しているので、gitとhgが最も人気がありますので、それらを調べてください。彼らは分岐を扱う様々な方法を持っています。彼らの力は、集中リポジトリがないという事実にあります。だから、大規模なチームにとっては、より柔軟で信頼性があります。

関連する問題