Version control TFS中的跨分支合并?

Version control TFS中的跨分支合并?,version-control,tfs,merge,branch,Version Control,Tfs,Merge,Branch,是否可以合并到TFS中不是直接父级或子级的分支?我怀疑答案是否定的,因为这是我在使用它时所经历的。然而,在某些情况下,当正在处理的不同功能可能具有不同的批准周期时(即功能一可能在功能二之前获得批准),这似乎非常有用。当我们有生产分支时,这变得非常困难,我们必须将一些特性合并到以前的分支中,以便在下一个完整版本之前发布 我们当前的分支策略是在主干线(或者我们称之为主线)中开发,并创建一个分支以稳定并发布到生产中。这个分支可以用来创建修补程序和其他东西,而主线可以为即将到来的特性进行分流 否则,可以

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

我们当前的分支策略是在主干线(或者我们称之为主线)中开发,并创建一个分支以稳定并发布到生产中。这个分支可以用来创建修补程序和其他东西,而主线可以为即将到来的特性进行分流


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

如果分支是从同一原始文件夹创建的,则可以这样做

  • 树干/
  • 分支机构/ -/特征1(从树干分支) -/特征2(从树干分支)
如果您这样做,那么您也应该能够在feature1和feature2之间合并


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

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

tf.exe merge /recursive /baseless $/TeamProject/SourceBranch $/TeamProject/TargetBranch
  • MSDN:

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

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


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

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

Tf merge /baseless <<source path>> <<target path>> /recursive
Tf合并/无基/递归
可以找到有关无根据合并的其他信息

我还发现,在构建我们的tfs分支结构时,这个文档是非常宝贵的
我远非TFS专家,但我认为你可以合并兄弟姐妹,我认为这不是毫无根据的合并

我们将我们的主分支(分支名称“main”)分为一个功能(分支名称“feature”),然后我需要在一个分支中进行一些工作,该分支也是从主分支(分支名称“dev”)分出来的。我认为特征和DEV分支是兄弟姐妹,因为他们都来自同一个父母。我将功能合并到dev中,所有文件(14000)都标记为merge,有些文件标记为merge,edit。我无法取消(VisualStudio将挂起),所以我接受了合并。然后我将dev合并到main,然后将main拉到feature,再次将14000个文件标记为要合并。我真的很难过,担心这种情况会继续下去

在这一点上,我们做了一个测试项目。我们设置main,然后从main分支dev和feature。我们重复上述步骤,结果相同。一旦我们完成了从main到feature的合并,所有未来的合并都只显示编辑过的文件

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


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

heh,看到了对这一点的投票,并想起了我在TFS的日子。很高兴地说,自从两年前我搬到Git以来,我就不必担心这样的事情了;)不正确的Joel,虽然您不必担心技术限制,git更擅长分支,但您仍然需要担心功能失调的行为。。。这些transend工具。我建议您升级到TFS 2013.3/VSO并迁移到基于Git的团队项目。“无法确定工作区”/“没有适当的映射”:使用一个本地路径和一个repo路径。