0

hg st -i显示所有被忽略的文件。如果我忽略一些外部库,这可能是一个巨大的列表。是否可以只看到文件被忽略的目录?或者其他一些巧妙地总结哪些文件/目录被忽略的方法?

4

2 回答 2

2

如果您在 Unix (Linux/OS X) 上,您可以使用下面的单行轻松生成包含被忽略文件的目录列表。

% hg status -i
I .project
I project/doc/API-notes.bbl
I project/doc/API-notes.blg
I project/doc/API-notes.log

% hg status -ni | sed -e 's/^/.\//' -e 's/\/[^\/]*$/\//' | sort | uniq -c
   1 ./
   3 ./project/doc/

第一个sed表达式添加./在每个被忽略路径的前面。第二个表达式删除最后一个斜杠之后的所有内容。我故意恢复斜线;如果您愿意,请忽略它。最后,sort | uniq -c计算并删除重复。

PS。您可以将上述内容转换为 hg 别名,例如,您可以使用hg ignoredirs;运行它。只需将以下内容放入您的.hgrc

[alias]
ignoredirs = !$HG status -ni | sed -e 's/^/.\//' -e 's/\/[^\/]*$/\//' | sort | uniq -c
于 2013-11-03T19:51:25.473 回答
0

以下在存储库的根目录中运行:

cat ./.hgignore 

或在窗户上:

type .\.hginore

将显示您的存储库忽略规则。

这可以由 glob 和/或正则表达式模式和特定文件名组成,对于 glob 部分,任何以结尾的路径/都将忽略整个目录和任何子目录,格式的模式*.ext将忽略所有子目录中的扩展名,dir/*.ext将忽略 sub 中的扩展名- 指定的目录等

偶尔手动重构此文件是值得的,因为您可能会发现有许多单独的文件被忽略,这些文件作为模式或目录忽略更好。

于 2013-11-04T04:58:00.193 回答