TFS:拆分大型源代码文件而不会丢失版本历史记录

时间:2017-10-25 09:38:55

标签: c# visual-studio tfs version-control

有没有办法将类从一个源代码文件移动到一个新的源代码文件而不会丢失版本控制历史记录?我们正在使用TFS。

感谢。

3 个答案:

答案 0 :(得分:1)

它基于您正在使用的版本控制系统:

这不可能与 TFVC 一样 Marvin Glenn Lacuna 上面也非常清楚地描述了,但是你可以尝试下面的工作:

  
      
  • 将FileX分支到FileA
  •   
  • 将FileX分支到FileB
  •   
  • 打开每个文件并删除您不想要的一方
  •   
  • 删除FileX
  •   

现在,您可以在所有可见的预编码行中保留历史记录  通过分支关系。

对于 GIT ,您可以查看以下问题:How does git track source code moved between files?

答案 1 :(得分:0)

在TFS中,根据我的经验,简单的答案是否定的,它保留在源文件中并保留在源文件中。它不会被复制到目标文件(ctrl+c, ctrl+v)。我相信这就是为什么它被称为“文件历史”而不是文件节/类历史。

答案 2 :(得分:0)

使用当前的TFS版本,默认版本控制是Git。 所以你可以通过一招来做到这一点。

假设您在一个名为File.ext的文件中有两个ClassA和ClassB类,您的源代码位于分支主文件中。 步骤应该是:

  1. 从'master'创建分支'developa'
  2. 调用'git mv File.ext ClsA.ext'然后提交具有File.ext历史记录的ClsA.ext
  3. 在ClsA.ext中清理ClassB然后提交。
  4. 从'master'
  5. 创建分支'developB'
  6. 调用'git mv File.ext ClsB.ext'然后提交具有File.ext历史记录的ClsB.ext
  7. ClsB.ext中的CleanA ClassA然后提交。
  8. 合并两个分支'developA'和'developB'然后推送到'master'
  9. 现在你有两个文件ClsA.ext和ClsB.ext,而不会从File.ext中丢失它们的历史记录。 可以在my github repository找到一个示例。