我有一些目录包含一些文件,这些文件是 Hg 存储库的一部分,有些不是。如何列出当前目录中属于存储库的文件?
我知道
hg status | grep "\? Path/To/Dir/In/Repo"
获取所有不属于存储库的文件,因此我可以反转正则表达式,但是“hg status”在大型存储库上也需要很长时间,因此不需要的解决方案将是理想的。
此外,如果可能,该解决方案不应需要任何扩展。
我有一些目录包含一些文件,这些文件是 Hg 存储库的一部分,有些不是。如何列出当前目录中属于存储库的文件?
我知道
hg status | grep "\? Path/To/Dir/In/Repo"
获取所有不属于存储库的文件,因此我可以反转正则表达式,但是“hg status”在大型存储库上也需要很长时间,因此不需要的解决方案将是理想的。
此外,如果可能,该解决方案不应需要任何扩展。
使用hg locate
. (hg help locate
详情...)
hg locate --include . --exclude ./*/* --fullpath
将列出当前目录中的所有跟踪文件,但不列出任何子目录。如果您不关心完整路径,则可以排除该--fullpath
标志。
请注意,hg locate
从 Mercurial 3.2 开始不推荐使用,因此请使用
hg files
它采用相同的选项,所以
hg files --include . --exclude ./*/*
仍然适用于仅显示当前目录中的文件。
您可以按照此处所述获取存储库中所有文件的状态。不幸的是,我不是shell的专家,所以您需要在命令的结果之上进行一些输出处理。
这对我有用:
hg locate --include ./*.*