【发布时间】:2011-08-08 21:42:59
【问题描述】:
我在理解如何根据 TFS Ranger 团队提供的最佳实践配置 TFS 时遇到问题。问题是这样的:
我的公司有几种使用共享通用代码库的产品。
> $/Core
> -> /Main/Source (Parent Branch)
>
> $/Product1
> -> /Main/Source
> -> /Main/Source/Core/Source (Child Branch from $/Core)
> -> /Main/Source/...
>
> $/Product2
> -> /Main/Source
> -> /Main/Source/Core/Source (Child Branch from $/Core)
> -> /Main/Source/...
因此,我们有一个团队集合,例如,此示例的三个团队项目。 ($/* 是一个团队项目)
我们的初始版本分支有点痛苦。我们没有将 /Main 分支到 /Releases,或 /Main 分支到 /Development,而是单独分支每个项目。 (不是团队项目...解决方案项目。)
这是由于无法嵌套分支根。 (请参阅 TFS 错误:TF203028 and TF203071)
根据 TFS Ranger Guide 和我们修订后的版本、修补程序、开发分支方法,我们应该从 /Main 而不是 /Main/Source/Proj1、/Proj2、/Proj3 等分支。这只是一个相当大的烦恼.
理想情况下,我们希望:
> $/Product1
> -> /Main/ (Branch - Parent)
> -> /Releases
> -> /1.x
> /1 Service Pack (Child Branch from $/Product1/Main
> -> /1.0
> -> /1.0 Hotfix (Child Branch from $/Product1/Releases/1.x/1 Service Pack)
> -> /1.0 RTM (Child Branch from $/Product1/Releases/1.x/1.0/1.0 Hotfix - Read Only)
> -> /1.0.22 RTM (Child Branch from $/Product1/Releases/1.x/1.0/1.0 Hotfix - Read Only)
> -> /1.5
> -> /1.5 Hotfix (Child Branch from $/Product1/Releases/1.x/1 Service Pack)
> -> /1.5 RTM (Child Branch from $/Product1/Releases/1.x/1.5/1.5 Hotfix - Read Only)
解决方案: 1.我们可以将每个共享分支(即$/Core)转换回常规文件夹。这样 /Main 下的任何文件夹都不是分支根目录。然后,我们可以执行从 $/Product1/Main/Source/Core/Source 到父 $/Core/Source 的毫无根据的合并。
有没有人对毫无根据的合并有任何经验。我从微软那里读到的是,它们是不应该司空见惯的例外。 MS 指出,如果您使用 TFS 正确设置项目,则永远不需要执行毫无根据的合并。
在跨团队项目分支时这怎么可能?!?在任何软件开发公司中,在产品之间共享库应该是司空见惯的。
我也愿意接受其他解决方案。
谢谢!
【问题讨论】:
-
这个问题的答案似乎是主观的。 Microsoft TFS Ranger 团队没有提供关于此主题的足够信息或解释。我很难奖励赏金,更不用说选择“正确”的答案了,所以我最终只会根据最多的投票来这样做。似乎提供的两种解决方案都可以正常工作,不使用 baseless-merge 的唯一原因只是因为 MS 说它不合适......其背后的原因似乎是未知的。
标签: tfs shared-libraries branching-and-merging