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

佐手、 提交于 2019-11-30 01:06:06

问题


I'm quite often concerned that my hgignore file may be excluding important files. For example I just noticed that I was excluding all .exe files which excluded some little executable tools which should be kept with the source. It was a simple change to include them but makes me worried that the rules could have un-intended consequences.

Is there a way to view a list of all the files which are not being tracked due to the .hgignore file? Just so I can periodically review the list to check I'm happy with it.


回答1:


The command hg status -i does exactly that.




回答2:


@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)



回答3:


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).




回答4:


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

Here's a sample



来源:https://stackoverflow.com/questions/12245001/how-to-check-which-files-are-being-ignored-because-of-hgignore

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