TFS:集成新代码丢弃的最佳方式

时间:2014-03-11 01:51:11

标签: visual-studio-2012 tfs tfs2012

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

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

这就是我在做的事情:

  1. 查看TFS中的整个项目
  2. 将旧代码全部复制到旧代码上
  3. 将我们对其代码库所做的所有更改合并到这个新的vanilla代码中(YIKES!)
  4. 签入
  5. 我从Perforce中复制的已签入代码库和vanilla drop之间的文件夹差异,并删除项目中不再存在的任何文件
  6. 签入
  7. 利润
  8. 正如你所知,这将是“有趣的”。我完成了第3步,我意识到我不知道如何以不需要在项目中传播每个friggin文件的方式实现这种合并(接近3000)。我希望得到一个窗口,列出我需要解决的所有冲突,就像你在同步后一样。

    此外,即使我每个文件都进行了强力差异,我也不相信这会很好。 :)移动,添加,删除等文件只会是一场噩梦。我们想要接受的大部分工作是在我们上次同步的时候从项目中较早的状态重构旧的凌乱的早期代码。

    我必须相信TFS可以让这项任务变得更加清洁,因为我想要做的事情并不罕见。你们会建议什么?

    谢谢!

1 个答案:

答案 0 :(得分:1)

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

这样,当其他团队发布新代码时,您只需在DEFAULT上获取最新内容,删除本地工作区文件,复制新代码,然后让本地工作区功能执行此操作并检测所有必要的挂起更改(添加,删除,编辑),然后签入更改。然后你可以合并DEFAULT-> CUSTOM并解决任何冲突。

由于您现在没有设置此结构,因此第一次设置它会有点痛苦,但将来它应该让生活更轻松。

假设您拥有上一版本中未修改代码的副本,您可以创建DEFAULT分支并检查其中。然后分支CUSTOM分支。然后在CUSTOM上获取最新信息,删除所有本地工作区文件,并复制当前修改后的代码。 VS应该检测所有必要的挂起更改,然后检查它们。

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