Mercurial - 确定删除文件的位置?

时间:2011-03-24 13:09:08

标签: mercurial hg-log

如果您执行hg log myfile -v,则会看到修改该文件的更改集列表。

在我们的案例中,在最近的变更集中,文件已被删除。但你不能通过查看hg log的详细(-v)输出来说明这一点。是否有一个简单的Mercurial命令可用于确定文件是否以及何时从回购中删除?


更新:请注意,这是在Windows客户端上,我们使用的是Mercurial v 1.4.3

更新2 :显示以下答案可以使用更新版本的Mercurial,但是现在没有升级。对于v 1.4.3 ???

的任何其他想法

3 个答案:

答案 0 :(得分:27)

您可以使用revsets检查哪个版本删除了文件(任何其他有趣的功能):

hg log -r 'removes(<myfile>)'

一些例子:

hg log -r 'removes(build.xml)' //其中build.xml曾经在当前目录中

hg log -r 'removes("**/build.xml")' //其中build.xml可能位于子目录

有关详细信息,请参阅hg help revsets

答案 1 :(得分:19)

--removed标志可以为您提供所需内容:

hg log myfile -v --removed

来自hg log的帮助:

    --removed              include revisions where files were removed

答案 2 :(得分:3)

这是我用来列出我的存储库中所有已删除文件的内容:

hg log --template "{rev}: {file_dels}\n" | grep -v ':\s*$'