0

私は 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 フォルダーを両方の場所に置きますが、ソースセーフがそれを行う必要がある唯一のメカニズムであるため、共有します。

4

3 に答える 3

3

bzr にはまだ簡単な解決策がありません。ネストされたツリーのサポートが必要ですが、まだ実装されていません ( http://bazaar-vcs.org/NestedTreeSupport ) が、まもなく実装される可能性があります。

config-manager ( https://launchpad.net/config-manager ) という古いツールがあります。

また、scmproj ( https://launchpad.net/bzr-scmproj )と呼ばれる bzr 用の新しいプラグインがあり、現在アルファ版であり、活発に開発されています。

于 2009-02-12T21:05:53.710 に答える
1

Bazaar でのネストされたツリーのサポートが修正されるか、Bazaar が Subversion の「Externals」に似たものを開発するまで (私が正しく理解している場合)、ライブラリを Bazaar ブランチのツリーに含める柔軟性は制限されます。

それまでは、ライブラリを独自のきれいな「ブランチ」内の別のプロジェクトとして維持してください。ファイルがプロジェクトの独自のツリー内にあるなど、プロジェクトに含まれるライブラリが必要な場合は、それらをコピーします。そのライブラリ内のファイルに変更を加えてライブラリに戻す場合は、その変更をそのライブラリのローカル ブランチに戻し、そこでマージ/コミットします。

于 2009-02-28T12:27:43.093 に答える
0

新しいライブラリが独自のソリューションを持ち、その一部としてビルドされ、他のプロジェクトから参照されることを望んでいませんか? そうすれば、ライブラリには (ソリューションごとに 1 つではなく) 1 つのバージョンのみが構築されます。

于 2008-12-11T00:18:51.287 に答える