私は bazaar に比較的慣れていません (主に cvs を使用し、次に subversion を使用し、現在の仕事では SourceUnsafe を使用しています)。私の現在の開発環境は次のように構成されています。
\dev (共有リポジトリ)
\トランク
\project1 (分岐)
\project2 (分岐)
\ブランチ
\proj1-bugfix123 (\trunk\project1 の分岐)
\proj1-featureA (\trunk\project1 の分岐)
ここで、project1 の特定の側面が、プロジェクト内のクラスよりもライブラリ (または ac# プロジェクトであるため、アセンブリ) として適していると判断した場合、これを bazaar で構造化するための最良のアプローチは何でしょうか。実行可能と思われる 2 つの可能性を思いつきました。最初に思うのは「正しい」方法です。
\dev (共有リポジトリ)
\トランク
\project1 (分岐)
\project2 (分岐)
\libXXX
\ブランチ
\proj1-bugfix123
\main (\trunk\project1 の分岐)
\libXXX (\trunk\libXXX の分岐)
\proj1-featureA
\main (\trunk\project1 の分岐)
\libXXX (\trunk\libXXX の分岐)
これに関する問題は、ブランチを作成するたびに適切なプロジェクトを含めるようにソリューション ファイルを更新し、それをプッシュ バックしないようにすること、および変更をプロジェクトとライブラリの両方に同時にプッシュ バックすることを忘れないようにする必要があることです。時間 (たとえば、project1 の featureA が動作するために libXXX への変更が必要な場合)。
\dev (共有リポジトリ)
\トランク
\project1 (分岐)
\project2 (分岐)
\libXXX
\ブランチ
\proj1-bugfix123 (\trunk\project1 の分岐)
\libXXX
\proj1-featureA (\trunk\project1 の分岐)
\libXXX
このアプローチの問題点は、別のプロジェクト、たとえば project3 が libXXX を使用してソース管理を行いたい場合、project1 のファイルを削除して、project1 から分岐する必要があることです。面倒です。
Subversion のようにトランク全体をブランチにするという 3 番目のオプションがあると思いますが、それはバザーで機能すると思われる方法に反しているようです。
これが SourceSafe で行われた場合、私は 2 番目の例のように行いますが、libxxx フォルダーを両方の場所に置きますが、ソースセーフがそれを行う必要がある唯一のメカニズムであるため、共有します。