Расширение Mercurial для автоматической генерации .Файл hgignore?

#mercurial

#mercurial

Вопрос:

Я подумал, что было бы неплохо иметь команду типа «hg ignore», которая автоматически добавляла бы все неотслеживаемые файлы в файл .hgignore.

Ручное редактирование файла .hgignore — это мощное средство, но когда я часто создаю новые репозитории, было бы неплохо иметь возможность добавлять только те файлы, которые я хочу, а затем игнорировать hg, чтобы Mercurial автоматически игнорировал все остальные.

Кто-нибудь знает о каких-либо расширениях, которые делают это?

Ответ №1:

Попробуйте это, как только вы добавите все необходимые файлы:

hg stat --unknown --no-status >> .hgignore

Вы можете создать команду для автоматической генерации вашего, .hgignore используя псевдоним. В Unix-подобной системе добавьте следующие строки в свой .hg/hgrc (или один из других конфигурационных файлов Mercurial):

 [alias]
ignore = !echo 'syntax: glob' >> $(hg root)/.hgignore amp;amp; 
          $HG status --unknown --no-status >> $(hg root)/.hgignore
  

Это выдаст вам hg ignore команду, которая заполнит .hgignore файл всеми неизвестными на данный момент файлами, тем самым превратив их в игнорируемые.

В Windows синтаксис псевдонима таков:

 [alias]
ignore = !echo syntax: glob > .hgignore amp;amp; "%HG%" status --unknown --no-status -X .hgignore >> .hgignore
  

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

! Синтаксис псевдонимов является новым в Mercurial 1.7. В более ранних версиях вы можете добавить

 [alias]
ignore = status --unknown --no-status
  

а затем перенаправьте вывод этой команды в .hgignore файл самостоятельно:

  hg ignore >> .hgignore
  

Затем вам также нужно будет позаботиться о добавлении syntax: glob строки, если это необходимо (синтаксис по умолчанию — регулярные выражения).

Комментарии:

1. Спасибо, что работает, хотя было бы неплохо, если бы hg ignore мог делать то же самое.

2. Еще раз спасибо. Я еще не наткнулся на alias’. Отлично!

3. Только что попробовал использовать псевдоним. К сожалению, я на Windows, и псевдоним не работает. Кто-нибудь знает синтаксис псевдонима в Windows?

4. @ACRL: сегодня твой счастливый день. 🙂 Я как раз собирался его добавить.

5. Это действительно потрясающе. Спасибо!