【问题标题】:TFS: Find a moved file by the old nameTFS:按旧名称查找移动的文件
【发布时间】:2012-03-21 21:32:33
【问题描述】:

如果您只知道文件的旧名称,有没有办法获取文件的版本历史记录?

我目前正在查看我们存储库的旧副本(我不知道确切的日期,副本已被拍摄)。当我将它与当前存储库进行比较时,有一个文件仅存在于副本中,而不存在于当前存储库中。它尚未在存储库中删除。我猜,它已被移动或重命名。 TFS 中是否有任何方法可以使用旧路径和名称查找版本历史记录?

我知道我可以使用名称或一些代码片段进行挖掘。但是 IMO 在使用存储库时这不是一个可接受的解决方案:)

非常感谢

安德烈亚斯

【问题讨论】:

  • 您想从命令行还是以编程方式在 C# 代码中执行此操作? (我看到了 C# 标签)

标签: c# tfs


【解决方案1】:

在 Team Explorer 2010 中,您只需打开“显示已删除文件”选项并导航到原始文件夹,您就可以看到被移动或删除的文件。您可以查看该项目的历史记录以查看其最后一个变更集 - 这将显示它是否被彻底删除,或者它是否刚刚被重命名,因此该项目不再存在于当前路径名(又名“插槽”)中并被删除那样。您可以进一步深入了解该变更集的变更集详细信息,以查看该项目占用的新路径名(槽)。

正如您所提到的,您当然可以使用 GetItems 方法对 TFS API 进行一点打击。虽然我知道这不是您想要做的,但我认为值得一说,因为 TFS API 非常易于使用。

【讨论】:

  • 我安装了 Visual Studio 2010 Premium,包括 TeamExplorer,并且确实看到了已删除的文件 - 但没有看到移动的文件。是否有我不知道的不同版本的 TeamExplorer?顺便说一句:是的,TFS-API 非常好并且易​​于使用 - 一旦你安装了它,这对我来说有点麻烦:)
  • 你的服务器也是TFS 2010吗?重命名的行为(在服务器上)在 2008 年和 2010 年之间发生了变化。
  • 不,我们还没有时间升级。现在我们还有一个理由。非常感谢。
【解决方案2】:

一些简单的方法(其他答案中没有建议)可能会有所帮助:

在您的 new 存储库中,转到用于包含 old 文件的文件夹,右键单击并显示历史记录。这将显示对该文件夹中文件的所有版本更改。现在查看文件夹中不再存在的文件的更改列表,然后双击它们以查看它们并确定该文件是否看起来像新文件的祖先。

或者采用蛮力方法:将所有源代码放到您的磁盘上,然后搜索与您要查找的文件同名的文件或其中包含相同文本的文件(I' d 寻找看起来可能很老旧的 cmets 并且使用了在许多地方不太可能出现的独特措辞。与如果文件重命名可能已重构的类/方法名称相比,注释更改的可能性较小)

Grep 可能是解决问题的一种丑陋、蛮力的方法,但有时它是最快、最简单的方法。 TFS CLI 工具功能强大,但无用、复杂且文档记录不完善,因此除非您已经是专家,否则它们可能需要经过大量试验和错误才能完成您想做的事情。

【讨论】:

    猜你喜欢
    • 2012-04-05
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多