2012-05-23 42 views
6

我们有一个项目中,我们一直在做的一个分支一些工作6.1版本。在6.1分支(变更集1800)中做出的一项修改是bug修正,有人认为它足够紧迫,因此需要对我们的6.0产品版本进行修补。从一个分支应用一个diff作为一个补丁,另一个在Visual Studio TFS

现在,更改了有问题的文件都变更1800之前和之后作出。他们想要的只是该补丁适用于6.0。

按照http://linux.die.net/man/1/patch,似乎做的最好的事情将是创建由1800变更比较1799一个差异文件,然后应用该diff文件作为修补至6.0。我甚至不知道从TFS开始做这件事。

作为一个后备计划,我总是可以只是去通过携手变更1800的差异,并将它们复制到生产的最新版本,修补它,但我想如果可能这样做正确。

除了: 我的理解是,通过施加只是一个差异,你的风险,一些参与1799> 1800 DIFF代码依赖于只在当前的生产版本和变更1799之间建立代码的事实,但是可以通过在diff补丁应用后快速构建和测试生产来轻松验证。我们并不担心这一点。

+0

我不得不查看比较和手,因为他们急于复制 - 粘贴变为生产的检出副本,但我很想知道如何做到这一点使用内置的TFS的命令尽管未来。我知道有一个用于高级TFS的命令行实用程序,但我从来没有用过它。 – Alain

回答

9

好吧,我不知道我完全理解,但在这里它是:

变更集TFS中不存储文件的绝对含量,但差异(线路添加,删除,更改)。

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

当你做一个合并,你有两个选择:

  1. 合并所有从源分支到目的地一个
  2. 的修改合并从源选择的变更目的地之一。

使用第二个,并指定变更1800,你会没事的。

一些照片:

enter image description here

enter image description here

ONLY选择的变更将被合并。

+0

当我去合并>选择的变更>,然后选择“1800”,然后尝试合并一切*直至并包括* 1800。你是否证实了还有另一种方法可以合并1799和1800之间使用此功能所做的更改? – Alain

+0

如果我正确地理解了这个问题,6.0分支上没有任何不属于6.1的东西?如果是这样,则从6.0到6.1的完整合并_prior_实际的变更集合可能会有所帮助。 __And__仅从TFS 2010开始,变更集仅包含差异。在此之前,如你所说,做这样的合并可能非常棘手。 –

+0

我更新了我的答案,我不知道你在哪里找到答案。它没有使用我提供的屏幕截图方法,它只是所选的一个,我保证。 – Nock

相关问题