Если при запуске hg status
перед изменением файла .hgignore перед файлом .suo был ?
, то его следует игнорировать. Если что-то еще (например, M
или A
), оно уже отслежено хранилищем и не прекратит магически отслеживаться. В таком случае вам нужно будет сделать hg remove
для файла, чтобы удалить его и сделать так, чтобы hg прекратил его отслеживать, или просто сделать hg forget
для него, чтобы hg прекратил его отслеживать, но сохранил файл. За каждым должен следовать коммит.
Единственные файлы, которые будут исключены из списка состояний, если их путь соответствует шаблону в файле .hgignore, - это файлы, которые не отслеживаются. Не имеет смысла опускать отслеживаемый файл, потому что вы никогда не увидите, был ли он изменен, добавлен или удален.
Редактировать : Mercurial отслеживает только файлы (вы не можете заставить его отслеживать пустые каталоги), но шаблоны в .hgignore просто запускаются со строками путей к файлам относительно корня хранилища , Те же самые относительные пути, которые он показывает при запуске hg status
. Так что он работает так, как вы говорите, что хотите, чтобы он работал, потому что следующие строки являются стандартной частью моих собственных файлов .hgignore:
syntax: glob
*\obj\*
*\bin\*
*.csproj.user
*.suo
Опять же, когда вы запускаете hg status
и он показывает файл .suo, какой отдельный символ находится в начале этой строки? Это символ M
, A
, R
, !
или ?
? Какой путь после него?