9

IntelliJ 14 中有没有办法显示特定文件的完整日志?

我的意思是:以图形方式执行一种git log --follow以查看旧版本;在这些文件可能被重命名之前。

目前,当我对文件执行Git => Show History时,它只显示相当于git log.

4

1 回答 1

3

--follow似乎已被判定为“错误”,但 git log 应遵循 IDEA 上的重命名:

请参阅“ IDEA-66700 git log 应遵循重命名(--follow选项) ”:

关闭:该请求已在不久前修复(但不是通过错误-–follow)。

您可以在“ IDEA-89370 Git:显示重命名文件夹的历史记录在重命名之前省略历史记录”中找到更多信息

我们不使用--follow(因为它的错误性质):相反,我们调用git show -M最后一次提交并检查文件是否已在此提交中重命名,在这种情况下请求旧文件名的历史记录,依此类推。

请注意(不一定是这种情况)试图显示重命名文件夹的历史无论如何都不起作用:

git log -- <dir>即使使用 with调用也--follow不会跟随重命名,但这是合乎逻辑的,因为日志是按新目录名称过滤的,而旧名称与它不匹配。
即 Git 本身不提供跨重命名目录的历史记录。


对于某些类型的文件重命名,仍然存在问题:
IDEA-89347 Git:由于文件的循环重命名,部分文件历史记录未显示。

git log --follow完全遵循所有这些重命名。但正如我们所知,它没有显示合并。所以我们不能使用它。

相反,我们检索整个文件历史的算法需要改进。
我们实际上需要查看每个版本并检查文件是否在那里重命名。

当然,要求git show --name-status -M每次修订都非常昂贵。
这是解决方案:调用git log --name-status并查看文件的那些修订版,其中添加了(重命名不显示git log,即使使用“ -M”,因为我们将其限制为提供的文件路径)。

于 2015-01-06T11:53:15.833 回答