是否可以合并到 TFS 中不是直接父级或子级的分支?我怀疑答案是否定的,因为这是我在使用它时所经历的。然而,似乎在某些时候,当正在开发的不同功能可能具有不同的批准周期时(即,不同的功能),它会非常有用。特色一 可能 在功能二之前获得批准)。当我们有生产分支时,这变得非常困难,我们必须将某些功能合并到以前的分支中,以便我们可以在下一个完整版本之前发布。

我们当前的分支策略是在主干(或我们所说的主线)中开发,并创建一个分支来稳定并发布到生产环境。然后,该分支可用于创建修补程序和其他内容,而主线可以针对即将推出的功能进行分歧。

可以使用哪些技术来缓解上述情况?

有帮助吗?

解决方案

我同意 Harpreet 的观点,您可能想重新审视如何设置分支结构。但是,如果您确实想执行这种类型的合并,则可以通过称为无基础合并的方法。它从 tfs 命令提示符运行,

Tf merge /baseless <<source path>> <<target path>> /recursive

可以找到有关无基础合并的其他信息 这里

我还发现这个文档在构建我们的 tfs 分支结构时非常有价值Microsoft Team Foundation Server 分支指南

其他提示

tf.exe merge /recursive /baseless $/TeamProject/SourceBranch $/TeamProject/TargetBranch

您可能需要重新审视您的分支策略。如何获得生产分支?您是否合并来自开发分支、回归测试的所有代码,然后创建用于修复的生产分支?或者您是在主干上开发,然后创建生产分支来稳定和发布?第二种方法会产生您所描述的类型的问题。如果您使用第一种方法——主干应该只适用于在测试分支上构建的东西,然后合并,您将很少遇到这种情况。在这种方法下,如果您仍然遇到此问题,可能是因为您的开发工作量非常大,并且您可能需要一个相对复杂的具有分支和升级层的分支策略。

据我所知,只要分支是从同一原始文件夹创建的,您就可以执行此操作。

  • 树干/
  • 分支/ - /特征1(从中继线分支) - /特征2(从中继线分支)

如果您这样做,那么您也应该能够在 feature1 和 feature2 之间进行合并。

尽管我对 TFS 的分支/合并经验让我想要更多。我希望我们只有 SVN。

是的,您可以进行无基础合并,但只能从命令行 (tf.exe) 进行。

TFS 将允许您与不是父/子的分支合并 - 这些称为无基础合并。请参阅这些链接:

来自MSDN

来自 TFS 团队通过 CodePlex

我们通常会对开发分支进行重大或不稳定的更改。如果接近我们产品之一的主要版本,几乎所有更改都将在分支上完成。

我远不是TFS专家,但我认为你可以合并兄弟姐妹,而且我认为这不是毫无根据的合并。

我们从主分支(分支名称“main”)中分支出一个功能(分支名称“feature”),然后我需要在一个也从主分支(分支名称“dev”)分支的分支中进行一些工作。我认为功能分支和开发分支是兄弟姐妹,因为它们都来自同一个父分支。我将功能合并到开发中,所有文件(14000)都被标记为合并,一些被标记为合并,编辑。我无法取消(Visual Studio 会挂起),所以我接受了合并。然后我将 dev 合并到 main,然后将 main 拉到 feature,并且再次标记了 14000 个文件进行合并。我真的很沮丧,担心这种情况会继续下去。

此时我们做了一个测试项目。我们设置了 main,然后从 main 分支了开发和功能。我们重复上述步骤,得到相同的结果。一旦我们完成了从主要到功能的合并,所有未来的合并仅显示编辑后的文件。

经过我们的小测试后,我完成了从主要到功能的合并。就像测试一样,我们的合并现在只显示编辑过的文件。我们可以从开发到功能,从功能到主,从主到开发,等等。

我确实注意到分支时所有文件日期都被修改了。也许这是一个问题?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top