移动文件在TFS 2013中丢失历史记录

时间:2015-03-11 15:11:03

标签: visual-studio-2013 move history tfs2013 tfvc

我正在使用VS2013 Update 4和TFS 2013 Update 4.在Source Control Explorer中,每当我将文件从一个文件夹移动到另一个文件夹时,我都可以看到文件的历史记录保存在新位置。但是,当我签入挂起的更改时,该历史记录已消失。当我尝试运行“tf move”命令时,会发生同样的事情。那么,如何在TFS中移动文件并保留文件的历史记录?

3 个答案:

答案 0 :(得分:20)

正确地重命名文件时,“历史记录”不会过去"它与"旧名称"相关联。代替。以正确方式执行的重命名(作为重命名而不是作为删除+添加进行跟踪)具有向下钻取选项以查看"较旧的"病史:

enter image description here

  • 变更集81~82包含对旧名称的更改
  • Changeset 83包含delete + rename
  • 更改集84重命名后检入的新更改

当重命名在Source Control Explorer之外(或从旧版本的Source Control Explorer(例如VS 2008))或在Solution Explorer之外完成时,更改将被检测为两个单独的操作,一个删除和一个添加。您可以使用"待定更改"窗口将这些提升为重命名,以便保留历史记录:

enter image description here

在命令行上,只能使用" tf rename"并且" tf move"。使用标准" mv"和" ren"命令将无法保留历史记录。

下面是使用所有不同方法的另一个示例,并通过查看当前文件名的历史记录清楚地显示历史记录:

enter image description here

如评论中所述,历史记录存储在包含项目修订的团队项目中。在项目分支/移动时,您的历史记录将分布在这些项目中。如果删除团队项目,那么该项目中累积的所有历史记录都将丢失。

答案 1 :(得分:0)

我不认为jessehouwing修复适用于文件夹。实际上,如果您使用VS 2012+的源代码管理资源管理器,则文件夹的移动会保留文件历史记录(在VS中显示递归),但不会保留文件夹。文件夹历史不变。

解决此问题的方法:

  1. Microsoft修复VS中显示文件夹历史记录的方式或添加Show Recursive History上下文菜单项。
  2. 将所有变更集从一个文件夹迁移到另一个文件夹。遗憾的是,我仍然无法确定能够为TFS 2013或VSO执行此操作的工具。

答案 2 :(得分:0)

请找到我的main经验

TFS中有main-rest个分支。我已经在与main相同的层次结构级别上创建了main-rest。然后,我尝试将tf move $/projectName/main-rest $/projectName/experimental/main-rest移到另一个子文件夹(将实验分支从$根移到子文件夹。

我已经删除了本地文件夹映射并执行了

main-rest

该命令在输出中列出了分支中的所有文件。然后,我已经完成了更改。

看起来不错,但是 *没有分支文件夹的历史记录 * merge看不到要合并的变更集

在移动之前,有可能从main合并到main-rest分支。仍然可用,但是合并时没有更改集可供选择。

“仅合并所选变更集”选项中只有一个“移动”变更集。在experimental移到master-rest子文件夹后发生了这种情况。

我希望可以合并整个{{1}}分支(但现在不是测试的合适时机)

我使用了VS2017附带的tf.exe命令行实用程序(已修补了今天可用的最新更新)。源代码托管在云tfs(https://dev.azure.com)上

致谢