如何检查因.hgignore而被忽略的文件?

时间:2012-09-03 09:14:24

标签: file mercurial hgignore

我经常担心我的hgignore文件可能会排除重要文件。例如,我只是注意到我排除了所有.exe文件,这些文件排除了一些应该与源保存的小型可执行工具。包含它们只是一个简单的改变,但让我担心这些规则会带来意想不到的后果。

有没有办法查看由于.hgignore文件而未被跟踪的所有文件的列表?所以我可以定期查看列表,看看我对它很满意。

4 个答案:

答案 0 :(得分:25)

命令hg status -i正是这样做的。

答案 1 :(得分:13)

@Jon用正确的答案击败了我,但它与status -i一起没有任何价值,有:

  • hg status -m(仅修改过的文件)
  • hg status -a(仅添加了文件)
  • hg status -r(仅删除的文件)
  • hg status -d(仅限已删除的文件)
  • hg status -u(所有未跟踪的文件)
  • hg status -c(没有更改的文件,即。"清理")
  • hg status -A(所有文件,即所有文件)

答案 2 :(得分:9)

如果您想对文件名进行手动检查,请使用-i/--ignored标志进行状态:

$ hg status -i
I ignored file.exe

如果您想单独使用文件名,请使用-n/--no-status取消打印在每个文件名前面的I状态代码:

$ hg status -n -i
ignored file.exe

如果您需要使用xargs 处理文件,请另外使用-0/--print0标记:

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

这将正确处理空间 - 使用-0时,您可能会将ignored file.exe视为两个文件:ignored和{{1}因为shell通常在空格上分割。

以上命令会显示与<{1}} 匹配的未跟踪文件。如果您想解决找到与匹配file.exe 匹配的跟踪文件的相关问题,则需要使用fileset query。看起来像这样:

.hgignore

您可以将文件集与所有对文件进行操作的命令一起使用,因此您可以执行以下操作:

.hgignore

安排找到要删除的文件(工作副本中留有副本)。

答案 3 :(得分:4)

是的,这是可能的。 如果你像TortoiseHg一样使用smth,你可以选择你想看的文件。

这是一个示例

enter image description here