7

我们有一个项目,我们一直在分支中为 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 差异中涉及的一些代码依赖于仅在当前生产版本和变更集 1799 之间建立的代码,但可以通过以下方式轻松验证应用差异补丁后快速构建和测试生产。我们对此并不担心。

4

1 回答 1

11

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

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

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

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

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

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

一些图片:

在此处输入图像描述

在此处输入图像描述

只有选定的变更集将被合并。

于 2012-05-23T18:50:19.217 回答