共有ライブラリを使用した複数のプロジェクト/ソリューションのソース管理
-
02-07-2019 - |
質問
私は現在、多数の Excel VBA を利用したワークブックを VSTO ソリューションに変換するプロジェクトに取り組んでいます。すべてのワークブックは多数のクラス ライブラリとサードパーティ アセンブリを共有します。実際、作業のほとんどはクラス ライブラリで行われます。現在、フォルダー構造は次のように配置されています。
Base
Libraries
Assemblies
Workbooks
Workbook1
Workbook2
各ワークブックは独自のソリューションとなり、ワークブック ソリューションはフォルダー構造内のアセンブリを参照するだけです。私の質問は、ソース管理をどのようにレイアウトするかということです。ベースでリポジトリを開始しますか?それとも、ワークブック ソリューションごとにリポジトリを作成しますか?フォルダを並べ替えてみませんか?
初期開発が完了したので、残りのワークブックの変換を手伝ってもらうために、多くの外部開発者をプロジェクトに参加させようとしています。彼らがベースからチェックアウトできるというアイデアがとても気に入っています。ディレクトリを作成し、すべての依存関係を準備完了にします。また、1 つのソース管理リポジトリの下に 20 以上のソリューション/プロジェクトがあることに伴う別の懸念もあるのではないかと心配しています。
プロジェクトに参加する人々にとってすべてができるだけシンプルであることを望みますが、長期的な使いやすさを犠牲にしたくありません。心の中では、1 つのリポジトリと 1 つのソリューションごとに 1 つのリポジトリではどちらがシンプルなのでしょうか?
駆け出したばかりなので、ご意見をいただければ幸いです。
追加情報:現在、私は個人的に Mercurial を使用していますが、他の何かについて説得力のある議論ができない限り、プロジェクトはおそらく StarTeam に移されるでしょう。
解決
質問では、使用しているソース管理について言及していません。外部開発者のリポジトリの残りの部分へのアクセスを制限する必要はないようなので、複数のリポジトリをセットアップすることに煩わされません。コードが数百万行のサイズに達しない限り、リポジトリのサイズは問題ではないと思います。
すべては、リビジョン管理システムがどの機能をサポートしているかによって異なります。Subversion では、他のフォルダーを外部フォルダーとして宣言し、そのフォルダーのコンテンツのファイル URL を指定できます。これにより、Subversion はそのフォルダーがフォルダー構造内にある場合でも、別のリポジトリとして処理されます。