Что я должен положить в hgignore, чтобы избежать меркуриального следования содержимому subdir? - PullRequest
3 голосов
/ 10 августа 2010

Например, у меня есть папка

PROJECT/db/

Там, где создается много файлов, я хочу, чтобы hg не отслеживал эти файлы, но сохранял папку db?

Ответы [ 2 ]

5 голосов
/ 10 августа 2010

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

Из книги hg: http://hgbook.red -bean.com / read / mercurial-in-daily-use.html

Пустые каталоги редко бывают полезны, и есть ненавязчивые обходные пути, которые вы можете использовать для достижения соответствующего эффекта. Таким образом, разработчики Mercurial полагали, что сложность, которая потребуется для управления пустыми каталогами, не стоит того ограниченного преимущества, которое принесет эта функция.

Если вам нужен пустой каталог в вашем репозитории, есть несколько способов добиться этого. Один из них - создать каталог, а затем hg добавить «скрытый» файл в этот каталог. В Unix-подобных системах любое имя файла, начинающееся с точки («.»), Рассматривается как скрытое большинством команд и инструментов с графическим интерфейсом. Этот подход иллюстрируется ниже.

$ hg init hidden-example
$ cd hidden-example
$ mkdir empty
$ touch empty/.hidden
$ hg add empty/.hidden
$ hg commit -m 'Manage an empty-looking directory'
$ ls empty
$ cd ..
$ hg clone hidden-example tmp
updating working directory
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ ls tmp
empty
$ ls tmp/empty

Еще один способ справиться с необходимостью создания пустой директории - просто создать ее в ваших скриптах автоматической сборки, прежде чем она понадобится.

Edit: Я предполагаю, что вы знаете, как сделать hgignore в своем репо, чтобы игнорировать весь каталог:
Создайте файл с именем .hgignore в корне репо. Вставьте следующий текст:

syntax: glob
db/
0 голосов
/ 10 августа 2010

Насколько я знаю, файлы игнорирования Mercurial не имеют рута, поэтому просто укажите один или несколько шаблонов, чтобы исключить содержимое папки DB.

...