IntelliJ 14 中有没有办法显示特定文件的完整日志?
我的意思是:以图形方式执行一种git log --follow
以查看旧版本;在这些文件可能被重命名之前。
目前,当我对文件执行Git => Show History时,它只显示相当于git log
.
IntelliJ 14 中有没有办法显示特定文件的完整日志?
我的意思是:以图形方式执行一种git log --follow
以查看旧版本;在这些文件可能被重命名之前。
目前,当我对文件执行Git => Show History时,它只显示相当于git log
.
--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
”,因为我们将其限制为提供的文件路径)。