How to check which files are being ignored because of .hgignore?

泪湿孤枕 提交于 2019-11-30 17:29:00

The command hg status -i does exactly that.

@Jon beat me to the punch with the right answer, but its worth nothing that along with status -i, there is:

  • hg status -m (only modified files)
  • hg status -a (only files that were added)
  • hg status -r (only files that were removed)
  • hg status -d (only files that were deleted)
  • hg status -u (all non-tracked files)
  • hg status -c (files with no changes, ie. "clean")
  • hg status -A (all files, ie, everything)

If you want to do manual inspection on the file names, then use the -i/--ignored flag to status:

$ hg status -i
I ignored file.exe

If you want the file names alone, then use -n/--no-status to suppress the I status code printed in front of each filename:

$ hg status -n -i
ignored file.exe

If you need to process the files with xargs, then use the -0/--print0 flag in addition:

$ hg status -n -0 | xargs -0 touch

That will take care of handling spaces correctly — with using -0, there is a risk that you'll end up treating ignored file.exe as two files: ignored and file.exe since shells normally split on spaces.

The above commands show you untracked files matching .hgignore. If you want to solve the related problem of finding tracked files matching .hgignore, then you need to use a fileset query. That looks like this:

$ hg locate "set:hgignore()"

You can use filesets with all commands that operate on files, so you can for example do:

$ hg forget "set:hgignore()"

to schedule the files found for removal (with a copy left behind in your working copy).

Yes, it is Possible. If You're using smth like TortoiseHg, You can select what files You wanna see.

Here's a sample

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!