Mercurial: несколько вопросов, связанных с .hgignore - PullRequest
6 голосов
/ 24 марта 2010

Я долгое время работал с файлом .hgignore, который был в порядке, и недавно добавил один новый тип файлов для игнорирования. При запуске "hg status" я заметил это:

M .hgignore

Таким образом, Mercurial считает .hgignore файлом, который необходимо отслеживать (если он является корнем проекта).

Теперь я прочитал различные документы, но мои пункты не были специально рассмотрены, поэтому вот некоторые очень подробные вопросы, которые, надеюсь, могут помочь мне разобраться в этом (было бы здорово, если бы кто-то, отвечая, мог процитировать и ответить на эти три пункта [даже просто да / нет ответа на каждый вопрос]):

  • Должен ли .hgignore быть в корне проекта? (Полагаю, так и должно быть, поскольку разработчик потенциально может работать над несколькими проектами, которые имеют разные требования .hgignore)

  • Может ли .hgignore быть проигнорировано Mercurial?

  • Если это можно игнорировать, должен .hgignore игнорироваться Mercurial (что отличается от предыдущего вопроса)

В случае, если .hgignore следует не игнорировать, разве не может случиться что-то действительно плохое, если вы неожиданно откатились раньше, когда использовался действительно старый и неполный .hgignore?

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

1 Ответ

13 голосов
/ 24 марта 2010

Обычно вы не игнорируете файл .hgignore, потому что хотите, чтобы он был частью репозитория, чтобы все ваши пользователи заканчивали его.

Что касается отката назад и последующей случайной фиксации файлов, вы не должны - ну, это действительно может произойти в любой момент в любом случае. Совершайте ответственно.

На остальные ваши вопросы:

  • Да, .hgignore должен быть в корне хранилища.
  • Да, .hgignore может игнорировать себя.
  • Нет, .hgignore не следует игнорировать (если только вы не решите, что он не нужен в хранилище).
...