Подвижный игнорируют файл

Как уже упоминалось, вы можете сделать это. Примером того, почему вы можете захотеть, является своего рода «драйвер». Вы можете передать обратно структуру, содержащую функции open, close, read и write, не делая общедоступными фактические функции.

65
задан Peter Mortensen 4 November 2010 в 19:03
поделиться

3 ответа

  • .hgignore не нужно создавать перед init
  • . Если файл конфигурации будет использоваться другими, вам лучше зафиксировать .hgignore, чтобы другие не создавали его, , но это не требуется для mercurial, чтобы игнорировать ваши локальные файлы (см. пример)
  • Да .hgignore должен находиться в корневом каталоге

Простой пример.

Инициировать репо:

$ mkdir test 
$ cd test 
$ hg init 

Создать файл

$ touch foo 
$ hg st 
? foo 

Теперь создать файл. hgignore в корневом каталоге вашего репо:

$ echo 'foo' > .hgignore 

foo теперь игнорируется:

$ hg st 
? .hgignore 

Обратите внимание, что. Для того, чтобы это работало, не нужно фиксировать hgignore.

Немного сложнее

Если и файл конфигурации, и файл .hgignore (без учета файла конфигурации) зафиксированы в репозитории, то да, файл конфигурации изменится будет отслеживаться (другими словами, .hgignore не будет иметь никакого эффекта)

Создание конфигурации и его фиксация

$ touch config
$ hg ci config -Am 'adding conf'

Игнорировать его:

$ echo 'config' >> .hgignore

Зафиксировать .hgignore:

$ hg ci .hgignore -Am '.hgignore'

Затем, если вы клонируете репо:

$ cd ..
$ hg clone test other-user
$ cd other-user

и измените конфигурацию:

$ echo 'new config param' >> config

, тогда hg покажет изменения:

$ hg st
M config

Как с этим справиться?

Вы, вероятно, захотите иметь основной файл конфигурации по умолчанию, с версией, в репозитории, global.cfg

И вы попросите пользователей создать local.cfg , в котором они будут помещать свои локальные настройки. И ваш сценарий будет источником local.cfg , если он присутствует: локальные настройки имеют приоритет над глобальными. Конечно, добавьте строку в . hgignore , чтобы игнорировать local.cfg ;)

Альтернатива: нет глобального файла конфигурации, только config.example , который пользователи копируют и изменяют локально. Минус в том, что вам будет нелегко отслеживать изменения между версиями.

69
ответ дан 24 November 2019 в 15:26
поделиться

Добавьте сам файл .hgignore в файл .hgignore:

syntax: glob

.hgignore

или просто проверьте файл .hgignore в своем локальном клоне ...

15
ответ дан 24 November 2019 в 15:26
поделиться

Даже если вы проигнорировали файлы, Mercurial будет отслеживать их после того, как они были добавлены в репозиторий.

Чтобы удалить ваш файл конфигурации из репозитория, вы можете использовать

hg remove -Af file.cfg

Это будет удалите файл из репозитория (после фиксации), не удаляя локальный файл. См. hg help remove Однако теперь в репо записано удаление, и Mercurial удалит этот файл, когда вы или кто-либо другой обновит эту ревизию .

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

hg rename file.cfg file.cfg.example
29
ответ дан 24 November 2019 в 15:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: