Подтвердить что ты не робот

Как проверить, какие файлы игнорируются из-за .hgignore?

Я довольно часто беспокоюсь о том, что мой файл hgignore может быть исключать важные файлы. Например, я только заметил, что я исключил все .exe файлы, которые исключили некоторые исполняемые инструменты, которые должны храниться вместе с источником. Это было простое изменение, чтобы включить их, но меня беспокоит, что правила могут иметь непреднамеренные последствия.

Есть ли способ просмотреть список всех файлов, которые не отслеживаются из-за файла .hgignore? Просто чтобы я мог периодически просматривать список, чтобы проверить, что я доволен этим.

4b9b3361

Ответ 1

Команда hg status -i выполняет именно это.

Ответ 2

@Jon победил меня до удара с правильным ответом, но его ничего не стоит, что наряду с status -i есть:

  • hg status -m (только измененные файлы)
  • hg status -a (добавлены только файлы)
  • hg status -r (только удаленные файлы)
  • hg status -d (только удаленные файлы)
  • hg status -u (все не отслеживаемые файлы)
  • hg status -c (файлы без изменений, т.е. "clean" )
  • hg status -a (все файлы, т.е. все)

Ответ 3

Если вы хотите выполнить ручную проверку в именах файлов, используйте флаг -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 и file.exe, так как оболочки обычно разбиваются на пробелы.

Вышеприведенные команды показывают вам не проверенные файлы, соответствующие .hgignore. Если вы хотите решить связанную проблему поиска отслеживаемых файлов, соответствующих .hgignore, вам нужно использовать запрос набора файлов. Это выглядит так:

$ hg locate "set:hgignore()"

Вы можете использовать набор файлов со всеми командами, которые работают с файлами, поэтому вы можете, например, сделать:

$ hg forget "set:hgignore()"

чтобы запланировать найденные файлы для удаления (с копией, оставленной в вашей рабочей копии).

Ответ 4

Да, это возможно. Если вы используете что-то вроде TortoiseHg, вы можете выбрать, какие файлы вы хотите видеть.

Здесь образец

enter image description here