跨部门合并在TFS中?

时间:2020-03-05 18:50:20  来源:igfitidea点击:

是否可以合并到不是TFS中直接父项或者子项的分支?我怀疑答案是否定的,因为这是我在使用它时所经历的。但是,似乎在某些时候,当正在使用的不同功能可能具有不同的批准周期时(例如,一个功能可能在第二个功能之前就被批准),这确实很有用。当我们有生产分支时,这变得非常困难,在生产分支中,我们必须将某些功能合并到上一个分支中,以便我们可以在下一个完整版本之前发布。

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

可以使用哪些技术来缓解上述情况(例如一个或者多个)?

解决方案

回答

AFAIK我们可以执行此操作,只要分支是在相同的原始文件夹下创建的。

  • 树干/
  • 分支/-/ feature1(从主干分支)-/ feature2(从主干分支)

如果执行此操作,那么我们也应该能够在feature1和feature2之间合并。

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

回答

我们可能需要重新考虑分支策略。我们如何获得生产分支?我们是在合并开发分支,回归测试中的所有代码,然后为修复创建生产分支吗?或者我们是在树干上进行开发,然后创建生产分支来稳定和从中释放?第二种方法会产生我们要描述的类型的问题。如果我们使用的是第一种方法,则应该仅将主干用于已经在经过测试的分支上构建然后合并的事物,这样我们将很少遇到这种情况。在这种方法下,如果我们仍然遇到此问题,可能是因为开发工作量很大,并且可能需要具有分支和升级层的相对复杂的分支策略。

回答

tf.exe merge /recursive /baseless $/TeamProject/SourceBranch $/TeamProject/TargetBranch
  • MSDN:如何:在Visual Studio Team Foundation Server中执行无基础的合并

回答

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

回答

TFS允许我们与不是父/子的分支合并,这称为无基础合并。请参阅以下链接:

从MSDN

从TFS团队通过CodePlex获得

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

回答

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

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

有关无基础合并的其他信息,请参见此处

此外,我发现该文档在构建tfs分支结构时具有无价的价值
Microsoft Team Foundation Server分支指南