Mercurial HG игнорировать не работает должным образом
Ситуация
$ cat .hgignore
.hgignore
$ hg status
M file1
M file2
M src/project.xml
Я не хочу отслеживать project.xml
так я бегу
echo "project.xml" >> .hgignore
и результат
$ cat .hgignore
.hgignore
project.xml
$ hg status
M .hgignore
M file1
M file2
M src/project.xml
Итак .hgignore
в настоящее время изменен, даже если он не должен отслеживаться и ничего не происходит с project.xml
, Что это значит?
1 ответ
Вы написали:
"M src / project.xml"
Который означает, что src/project.xml
находится под контролем версий. Файл, уже находящийся под контролем версий, не может быть проигнорирован!.hgignore
file предназначен для игнорирования файлов, которые не были отслежены (в статусе будет отображаться "?").
У вас есть два решения, чтобы игнорировать ваш файл:
- Вы также можете "
hg forget
"файл, противоположность"hg add
"(то есть, говоря Mercurial больше не отслеживать этот файл), или Вы можете использовать
-X
Опция по умолчанию дляstatus/diff/commit
в вашем.hg/hgrc
файл конфигурации, например,[по умолчанию]
статус = -X<file>
diff = -X<file>
совершать = -X<file>
который скажет hg не включать этот файл в использование status, diff и commit.