visual studio 2012 - TFS:集成新代码掉落的最佳方式



我们的项目是基于另一个工作室的技术,我们已经修改以适应我们的需要。我们用TFS,他们用Perforce。他们刚刚发布了他们的产品,因此,他们有很多新的完成的功能,我们想为我们的项目挑选。我的任务是将这个新代码集成到我们的代码库中。

我非常熟悉Perforce,因为我已经使用它很多年了,但我对TFS的经验要少得多(这是所有工作将要发生的地方),所以我很确定我的方法将是蛮力的,乏味的,而且非常耗时。希望你们中的一些人能够提出"正确的方法"来做到这一点。:)

我是这样做的:

  1. 查看TFS
  2. 中的整个项目
  3. 复制整个新代码到旧代码
  4. 将我们对他们的代码库所做的所有更改合并到这个新的香草代码drop (YIKES!)
  5. 在<<li>检查/gh>
  6. 检查代码库和我从Perforce同步的香草drop之间的文件夹差异,并删除不再在项目中的任何文件
  7. 在<<li>检查/gh>利润

你可以看出,这将是"有趣的"。我到了第3步,我意识到我不知道如何以一种不需要改变项目中每个该死的文件(接近3000)的方式来实际执行此合并。我希望得到一个窗口,我需要解决的所有冲突,就像你在同步后做的那样。

此外,我只是没有信心,这将会很好地工作,即使我对每个单独的文件进行了暴力破解。:)文件移动,添加,删除等都将是一场噩梦。我们想要做的大部分工作是重构他们的旧的、混乱的早期代码,而这些代码是我们上次同步时项目中更早的状态。

我不得不相信TFS可以使这个任务更清晰,因为我正在尝试做的事情并不少见。你们有什么建议?

谢谢!

我的建议是在TFS中有两个分支,一个是来自另一个团队的未修改的代码(我们称之为DEFAULT)。然后创建一个分支(我们称之为CUSTOM)。您可以在CUSTOM中进行更改。

这样,当其他团队发布新代码时,您只需默认获取最新,删除本地工作空间文件,复制新代码,然后让本地工作空间特性做它的事情并检测所有必要的未完成的更改(添加,删除,编辑),然后签入更改。然后你可以合并DEFAULT->CUSTOM并解决任何冲突。

由于您现在没有设置这个结构,因此第一次设置它会有点痛苦,但将来它会使事情变得更容易。

假设您有一份来自前一个版本的未修改代码的副本,您可以创建DEFAULT分支并签入它。然后从一个CUSTOM分支中分离出来。然后Get Latest on CUSTOM,删除所有本地工作空间文件,并复制当前修改的代码。VS应该检测所有必要的挂起更改,然后检入。

现在您可以执行更新DEFAULT的过程,并合并到新版本的CUSTOM。因为TFS将跟踪历史,所以您应该只需要处理实际的冲突,而不是遍历每一个更改。当然,您必须进行充分的测试,以确保新代码和您的自定义仍然可以很好地协同工作。

最新更新