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 предназначен для игнорирования файлов, которые не были отслежены (в статусе будет отображаться "?").

У вас есть два решения, чтобы игнорировать ваш файл:

  1. Вы также можете "hg forget"файл, противоположность"hg add"(то есть, говоря Mercurial больше не отслеживать этот файл), или
  2. Вы можете использовать-XОпция по умолчанию для status/diff/commitв вашем .hg/hgrc файл конфигурации, например,

    [по умолчанию]
    статус = -X <file>
    diff = -X <file>
    совершать = -X <file>

который скажет hg не включать этот файл в использование status, diff и commit.

Другие вопросы по тегам