我们正在使用 TFS 2010,我们的依赖项/分支管理存在一些非常烦人的问题。
乍一看,我们的问题很常见。我们有AppServer
和。两者都依赖于. 还有两个额外的限制:WebClient
WinClient
WebClient
WinClient
AppServer
- 我们更喜欢包含使用依赖项的特定版本
- 我们更喜欢包含源代码而不是二进制文件,因为它更容易实现和测试
AppServer
来自特定来源的更改,例如WinClient
.
我们选择以下文件夹结构:
\
|-AppServer (1)
|-WebClient
|-Dependencies
|-AppServer (2)
|-Sources
|-WinClient
|-Dependencies
|-AppServer (3)
|-Sources
AppServer
s(2)
和(3)
是 的分支(作为一级分支)AppServer (1)
。这一切都运行良好,符合我们的开发场景。
现在,麻烦来了。假设我们想在 上实现“branch-per-release”模式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
我们有哪些选择?我能想到几个:
- 将一流的分支转换为文件夹。这将允许我们嵌套分支,但我们将失去跟踪和可视化,这是我不喜欢的。
- 我们可以以某种方式根据依赖关系重构我们的代码。但我试着想了一段时间,仍然没有看到答案。
- 我们可以从代码依赖切换到二进制依赖,但这会减慢我们的开发速度。
有什么我想念的解决方案吗?