如何在 VS 2012 中使用 TFS 合并源代码

How to merge source code using TFS in VS 2012

我使用 TFS 在源代码控制下使用了 NopCommerce 的源代码 3.50 版本。我不得不对代码进行一些核心更改以满足客户的需求。现在我想利用 NopCommerce 3.70 版中的一些新代码。我不是 TFS 或源代码管理专家,所以我不确定如何处理这个问题。

我的初步想法:

  1. 将我当前的基本代码存储库转换为名为 3.50 的分支。
  2. 创建一个名为 3.70 的新分支,并将新的源代码加载到其中。
  3. 将 3.50 合并到 3.70 并解决代码冲突。

这是正确的吗?

我建议你改写第 3 步。

或者重新评估您的策略。我怀疑 "merge and then address conflicts" 过程对于您所做的任何有意义的更改是否简单或成功。

批判性地,而不是 "Merge 3.50 into 3.70" 我会考虑更多 "Identify the changes made to the 3.50 code and recreate them in the 3.70 code"

您可以遵循两种基本策略:

1) 查看您对 3.50 所做的修改的 TFS 日志,了解每一项,然后针对 3.70 重新执行该更改,一次一个。

2) 找出您的代码与您开始使用的 3.50 代码之间的总体当前差异。然后在 3.70 代码中重新创建这些更改。我会通过在其他地方获取 3.50 的新副本(重新下载,或者从您的 TFS 服务器的历史记录中删除)来做到这一点,并在原始 3.50 代码和您当前的副本之间进行树差异。 WinMerge 非常适合这类事情。

哪一个最有效将取决于您对代码所做更改的复杂性、更改的步骤数以及文档的质量(需求、设计、代码注释、提交评论等)在此过程中创建。

所以就分支而言,我会按照您概述的那样执行 1 和 2,但是合并将是一种谨慎的手动方法,如您所说,合并到 3.70 分支。