我们有一个项目,我们已经在6.1版的Branch中进行了一些工作。在6.1分支(更改集1800)中所做的一项更改是一个错误修正,有人认为迫切需要对我们的6.0生产版本进行补丁。

现在,在变更集1800之前和之后都对该文件进行了更改。他们想要的只是将修补程序应用于6.0。

按照http://linux.die.net/man/1/patch,最好的方法似乎是通过将更改集1800与1799进行比较来创建一个diff文件,然后将该差异文件作为6.0的补丁应用。我什至不知道在TFS中从哪里开始这样做。

作为后备计划,我总是可以只手动检查变更集1800中的差异,然后将其复制到最新的生产版本中以对其进行修补,但我想尽可能地做到这一点。

在旁边:
我知道,仅应用差异就可能冒这样一个事实,即1799> 1800差异所涉及的某些代码依赖于仅在当前生产版本和变更集1799之间建立的代码,但是可以通过快速构建轻松地进行验证并在应用差异补丁后测试生产。我们不用担心。

最佳答案

好的,我不确定我是否完全理解,但是这里是:

TFS中的Changeset不会存储文件的绝对内容,但会存储差异(添加,删除,更改的行)。

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

进行合并时,有两个选择:


合并从源分支到目标分支的所有更改
将选定变更集从源合并到目标变更集。


使用第二个,并指定更改集1800,就可以了。

一些图片:





仅所选变更集将被合并。

08-26 14:05