在Visual Studio TFS中将一个分支作为补丁应用于另一个分支

时间:2012-05-23 17:35:14

标签: version-control tfs diff patch

我们有一个项目,我们已经在6.1版的分支机构中做了一些工作。 6.1分支(变更集1800)中所做的更改之一是错误修正,有人认为它非常紧急,需要修补我们的6.0生产版本。

现在,在更改集1800之前和之后,对相关文件进行了更改。他们想要的只是将补丁应用于6.0。

根据http://linux.die.net/man/1/patch,最好的办法是通过比较变更集1800到1799来创建差异文件,然后将该差异文件应用为补丁到6.0。我甚至不知道从哪里开始在TFS中这样做。

作为一个后备计划,我总是可以手动完成变更集1800中的差异,并将它们复制到最新版本的生产中进行修补,但是如果可能的话,我希望能够做到这一点。

除了: 我理解通过仅应用差异,您可能会冒这样的事实:1799> 1800 diff中涉及的一些代码依赖于仅在当前生产版本和变更集1799之间建立的代码,但可以通过快速构建轻松验证应用diff补丁后测试生产。我们并不担心。

1 个答案:

答案 0 :(得分:11)

好的,我不确定我完全理解,但现在是:

TFS中的变更集不存储文件的绝对内容,而是存储差异(添加,删除,更改行)。

如果要报告从版本6.1到6.0的错误修复,并且此修补程序包含在更改集1800中(仅此修复程序),则只需将给定的更改集合并到版本6.0即可。在变更集1800之前所做的所有更改都不会在6.0中合并,只会合并您在此变更集中所做的更改。

进行合并时,您有两种选择:

  1. 合并从源分支到目标分支的所有更改
  2. 将选定的变更集从源合并到目标变更集。
  3. 使用第二个并指定变更集1800,你会没事的。

    一些图片:

    enter image description here

    enter image description here

    所选的变更集将合并。