列出当前目录中由Mercurial控制的文件

时间:2012-05-31 20:42:43

标签: mercurial

我有一些目录包含一些文件,这些文件是Hg存储库的一部分,而另一些则不是。如何列出当前目录中属于存储库的文件?

我知道

hg status | grep "\? Path/To/Dir/In/Repo"

获取所有存储库的文件,因此我可以反转正则表达式,但“hg status”在大型存储库上也需要很长时间才能解决问题我需要这是理想的。

此外,如果可能,解决方案不需要任何扩展。

4 个答案:

答案 0 :(得分:5)

使用hg locate。 (hg help locate了解详情...)

hg locate --include . --exclude ./*/* --fullpath将列出当前目录中的所有跟踪文件,但不会列出任何子目录。如果您不关心完整路径,则可以排除--fullpath标记。

答案 1 :(得分:1)

请注意,从Mercurial 3.2开始,hg locate已弃用,因此请使用

hg files

它采用相同的选项,所以

hg files --include . --exclude ./*/*

仍可用于仅显示当前目录中的文件。

答案 2 :(得分:0)

您可以按照here所述获取存储库中所有文件的状态。不幸的是,我不是shell的大师,所以你需要在命令结果之上进行一些输出处理。

答案 3 :(得分:0)

这对我有用:

hg locate --include ./*.*