我们正在使用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)
的分支(作为第一类分支)。这一切都运作良好,符合我们的开发方案。
现在,出现了麻烦。假设我们想要实现"每次发布分支" 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
我们有什么选择?我能想到几个:
我想念任何解决方案吗?
答案 0 :(得分:1)
几点想法:
1)您可以将您的AppServer分支与WebClient分开并取消嵌套,只需使用TFS中的工作区映射功能来模拟您通过将AppServer分支到客户端分支中所定义的内容。这将允许开发人员选择他们想要的AppServer分支,并将其嵌套到正确位置的本地文件结构中,以方便他们的工作。
2)你声明通过使用二进制文件来减缓开发似乎是我将进一步探索并尝试测量和量化的东西。如果您的AppServer和客户端之间有明显的中断,那么我希望它们之间存在 no 依赖关系,而是一些可以由svcutil或其他工具生成的代理代码。如果是这种情况,并且您在某个过程中托管AppServer并从另一个过程中的客户端进行通信,我不明白为什么您需要实现原始结构。它似乎是不必要的耦合,我想知道它为什么要更详细地完成。