TFS 2010 を使用していますが、依存関係/ブランチ管理で非常に厄介な問題が発生しています。
一見すると、私たちの問題は非常に一般的です。AppServer
、WebClient
およびがありWinClient
ます。との両方WebClient
が にWinClient
依存しAppServer
ます。さらに 2 つの制限があります。
- 使用されている依存関係の特定のバージョンを含めることを好みます
- バイナリではなくソース コードを含めることをお勧めします。
AppServer
これは、WinClient
.
次のフォルダー構造を選択します。
\
|-AppServer (1)
|-WebClient
|-Dependencies
|-AppServer (2)
|-Sources
|-WinClient
|-Dependencies
|-AppServer (3)
|-Sources
AppServer
s(2)
および(3)
は、 のブランチ (第 1 級ブランチとして) ですAppServer (1)
。すべてうまく機能し、私たちの開発シナリオと一致しています。
さて、トラブル発生。に「ブランチごとのリリース」パターンを実装するとします。これは、階層WebClient
全体を別の場所に分岐することを意味します。WebClient
TFS2010ではネストされたファースト クラス ブランチが許可されていないため、これを行うことはできません。
課題に追加するために、ブランチ階層 ( のみWebClient
、および他にいくつかの依存プロジェクトと依存プロジェクトがある) を次のようにすることを想定しています。
WebClient
|-Client1
| |-feature-1
| |-feature-2
| |-v1 Release
| | |-v1 hotfix1
| | |-v1 hotfix2
| |-v2 Release
| |-v1 hotfix1
| |-v1 hotfix2
|
|-Client2
|-feature-1
|-feature-2
|-v1 Release
| |-v1 hotfix1
| |-v1 hotfix2
|-v2 Release
|-v1 hotfix1
|-v1 hotfix2
私たちの選択肢は何ですか?私はいくつか考えることができます:
- ファーストクラスのブランチをフォルダーに変換します。これにより、ブランチをネストできますが、追跡と視覚化が失われます。これは好ましくありません。
- 依存関係に関してコードを何らかの方法で再構築できます。しかし、しばらく考えてみましたが、まだ答えがわかりません。
- コードの依存関係からバイナリの依存関係に切り替えることはできますが、それでは開発が遅くなります。
私が見逃している解決策はありますか?