Visual Studio:查看完整的git提交历史记录(包括重命名)

时间:2015-09-21 18:52:39

标签: git visual-studio visual-studio-2015

我正在使用Visual Studio 2015和Microsoft Git客户端。我在使用工具查看历史记录和注释时遇到了一些问题,因为Visual Studio在查看git历史记录时似乎无法处理文件重命名。这有什么好办法吗?

BTW:我尝试使用"显示完整历史记录"历史查看器中的工具按钮,但它实际上并未显示重命名历史记录

这是我测试的内容:

  1. 在Visual Studio中,我右键单击该文件并选择"查看历史记录"。 (它只显示了4次提交)
  2. 在历史记录窗口中,我点击了"显示完整历史记录" - 仍然是相同的4次提交。
  3. 从git命令行,我运行了git log --follow TheFile.cs(它生成了13次提交)
  4. 在Atlassian Source Tree中,我提取了该文件的日志,并检查了" Follow Renamed Files"选项。它提取了与命令行相同的13次提交。
  5. 我真正想要的是在Visual Studio中有一个匹配的选项。这可能吗?

1 个答案:

答案 0 :(得分:4)

Visual Studio 跟踪两次提交之间的历史记录,以确定是否重命名了文件。在这里,我将一个文件从其原始名称重命名为renamed,并同时对内容进行了更改:

File History

但是,Git不跟踪两次提交之间的更改 - 而是比较提交的快照以确定文件的更改方式。因此,存储库的历史记录中没有重命名信息。相反,这是通过将原始提交中的文件与后续提交中的文件进行比较来计算的。如果它们足够相似,那么Git会认为这是重命名。

由于这是一种启发式方法,因此无法保证将其视为重命名。但是,一般而言,Visual Studio和Git for Windows 应该就这些事情达成一致。我很好奇为什么一个人将此报告为重命名而另一个报告不重命名。有两种可能性:

  1. 这个文件非常接近相似的边缘 - 比方说,Git已经确定两个版本相互之间有61%的相似性,因此是重命名,而Visual Studio已经确定这两个版本只有59%相似,因此重命名。
  2. 这里有一些错误,Visual Studio没有正确计算相似度。如果我不得不猜测,我猜是有空格或行结尾问题,因为总是在Git中出现问题。
  3. 如果您能够共享此文件的两个修订版,打开连接错误或直接通过电子邮件发送给我,将有助于进一步调查。