私と友人のためにTeam Foundation Serviceをセットアップしています。これを使用して、いくつかの趣味のプロジェクトを作成します。
単一のチーム プロジェクトでセットアップしました。現在、ソース管理は次のように構成されています。
$\Projects\CommonLib
$\Projects\Project1
$\Projects\Project2
Project1 はゲーム、Project2 は win8 アプリ、commonlib は共通の再利用可能なコードで、Projec1 と Project2 の両方で参照されます。各プロジェクトは、複数のプロジェクトを含むソリューションで構成されます。
CommonLib を 2 つのプロジェクトに配布する必要があります。私の最初のアイデアは、CommonLib バイナリをソース管理フォルダーにチェックインし、それを他の 2 つのプロジェクトに分岐させ、何らかのカスタム チーム ビルド プロセスを使用して展開することでした。
しかし、問題があります。このように作業するのはかなり面倒です。特に開発の初期段階ではなおさらです。CommonLib にコードを迅速に追加できるようにしたいと考えています。コードベースが成熟し、頻繁に変更されない場合、上記のプロセスは問題ありませんが、何かが追加されるたびにこれらすべての手順を実行するのは面倒です。そこに (ビルド -> デプロイ -> マージ)。
反対に、CommonLib プロジェクトを含む Project1 などの開発ソリューションを作成することもできます。ただし、これは、誤って重大な変更を行った場合、Project2 に問題が発生する可能性があることを意味します。これは、上記のブランチ+マージ戦略でより適切に管理できます
私の質問は、開発プロセスの複雑さを最小限に抑えながら、制御を維持できるオプションが欠落していないかということです。これはよくある問題だと思います。