我使用的是VS2013 Update 4和TFS 2013 Update4。在Source Control Explorer中,每当我将文件从一个文件夹移动到另一个文件夹时,我都可以看到文件的历史记录保留在新位置。但是,当我签入未决的更改时,该历史记录已消失。当我尝试运行“ tf move”命令时,也会发生相同的情况。那么,如何在TFS中移动文件并保持文件的历史记录呢?
最佳答案
正确重命名文件后,“历史记录”不是“已消失”,而是与“旧名称”相关联。以正确的方式完成的重命名(作为重命名而不是删除+添加进行跟踪)具有向下钻取选项以查看“较旧”的历史记录:
变更集81〜82包含对旧名称的更改
变更集83包含删除+重命名
变更集84是重命名后签入的新变更
如果在源代码管理资源管理器外部(或从源代码管理资源管理器的较旧版本(例如VS 2008))或解决方案资源管理器外部进行重命名,则更改将被检测为两个单独的操作,一个是删除操作,另一个是加。您可以使用“待更改”窗口将其升级为重命名,以便保留历史记录:
在命令行上,只能使用“ tf重命名”和“ tf移动”来完成。使用标准的“ mv”和“ ren”命令将无法保存历史记录。
下面是使用所有不同方法并通过查看当前文件名的历史记录清楚地表明保留了历史记录的另一个示例:
如评论中所述,历史记录存储在包含项目修订的团队项目中。在各个项目之间进行分支/移动时,您的历史记录将分散在这些项目中。如果您删除团队项目,则该项目中累积的所有历史记录都将丢失。