Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TFS:在不丢失版本历史记录的情况下拆分大型源代码文件_C#_Visual Studio_Tfs_Version Control - Fatal编程技术网

C# TFS:在不丢失版本历史记录的情况下拆分大型源代码文件

C# TFS:在不丢失版本历史记录的情况下拆分大型源代码文件,c#,visual-studio,tfs,version-control,C#,Visual Studio,Tfs,Version Control,有没有办法在不丢失版本控制历史记录的情况下将类从一个源代码文件移动到一个新的源代码文件?我们正在使用TFS 谢谢。根据我的经验,在TFS中,简单的答案是否定的,它将保留在源文件中,并将保留在源文件中。它不会复制到目标文件(ctrl+c,ctrl+v)。我相信这就是为什么它被称为“文件历史”,而不是文件节/类历史 对于当前TFS版本,默认版本控制是Git。 所以你可以耍个花招 假设在名为file.ext的文件中有两个类ClassA和ClassB,则源代码位于branch master。 这些步骤应

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


谢谢。

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

对于当前TFS版本,默认版本控制是Git。 所以你可以耍个花招

假设在名为file.ext的文件中有两个类ClassA和ClassB,则源代码位于branch master。 这些步骤应该是:

  • 从“主”创建分支“developA”
  • 调用'git mv File.ext ClsA.ext',然后提交ClsA.ext,其中包含File.ext的历史记录
  • ClsA.ext中的清理类B,然后提交
  • 从“主”创建分支“developB”
  • 调用'git mv File.ext ClsB.ext',然后提交具有File.ext历史记录的ClsB.ext
  • 清除ClsB.ext中的ClassA,然后提交
  • 合并两个分支“developA”和“developB”,然后推到“master”
  • 现在您拥有了ClsA.ext和ClsB.ext两个文件,而不会从File.ext中丢失它们的历史记录。
    可以在。

    找到一个示例,它基于您使用的版本控制系统:

    这在TFVC中是不可能的,因为Marvin Glenn Lacona也在上面非常清楚地描述了这一点,但是您可以尝试以下解决方法:

    • 将FileX分支到FileA
    • 将FileX分支到FileB
    • 打开每个文件并删除您不想要的一方
    • 删除文件
    现在,您可以在所有可见的预编码行上维护历史记录 通过分支关系

    对于GIT,您可以看看这个问题: