игнорирование папок в Mercurial - PullRequest
31 голосов
/ 21 ноября 2008

Оговорка: Я пробую все возможности, перечисленные здесь: Как я могу игнорировать все в папке в Mercurial .
Ни один не работает, как я надеюсь.

Я хочу игнорировать все, что находится в папке test. Но не игнорировать srcProject\test\TestManager

Я пытаюсь

syntax: glob
test/**

И игнорирует test и srcProject\test\TestManager

С:

syntax: regexp
^/test/

Это то же самое.

Также с:

syntax: regexp
test\\*

У меня установлена ​​TortoiseHG 0.4rc2 с Mercurial-626cb86a6523 + tortoisehg, Python-2.5.1, PyGTK-2.10.6, GTK-2.10.11 в Windows

Ответы [ 4 ]

44 голосов
/ 24 ноября 2008

Попробуйте без косой черты после каретки в версии регулярного выражения.

^test/

Вот тест:

~$ mkdir hg-folder-ignore
~$ cd hg-folder-ignore
~/hg-folder-ignore$ echo '^test/' > .hgignore
~/hg-folder-ignore$ hg init
~/hg-folder-ignore$ mkdir test
~/hg-folder-ignore$ touch test/ignoreme
~/hg-folder-ignore$ mkdir -p srcProject/test/TestManager
~/hg-folder-ignore$ touch srcProject/test/TestManager/dont-ignore
~/hg-folder-ignore$ hg stat
? .hgignore
? srcProject/test/TestManager/dont-ignore

Обратите внимание, что ignoreme не отображается, а не игнорировать.

4 голосов
/ 22 ноября 2008

Вы можете использовать отрицательные прогнозные и нулевые утверждения нулевой ширины, чтобы указать, что вы хотите игнорировать test только в том случае, если ему не предшествует srcProject и за ним не следует TestManager:

syntax: regexp
(?<!srcProject\\)test\\(?!TestManager)

Mercurial использует регулярные выражения Python, поэтому вы можете найти больше информации об утверждениях нулевой ширины в документации по Python: https://docs.python.org/library/re.html#regular-expression-syntax

3 голосов
/ 07 июня 2010

У меня оба случая работали (на linux и windows):

syntax: regexp
^backup/     #root folder
nbproject/   #any folder

или

syntax: glob
./backup/*   #root folder
nbproject/*  #any folder

Однако это было до того, как я добавил ссылку на файл .hgignore в файл .hgrc в своем репо:

[ui]
ignore = .hg/.hgignore

Также стоит упомянуть, что Mercurial игнорирует файлы, которые в настоящее время не отслеживает , которые добавляются до того, как вы настроили его на игнорирование. Так что, не откладывайте на hg status, говоря, что некоторые поля M (модифицированные) или! (отсутствует) в папках, которые вы только что добавили в список игнорирования!

0 голосов
/ 25 ноября 2015

Создать файл .hgignore в корневом каталоге хранилища

Теперь добавьте следующее содержимое в файл.

синтаксис: glob

бен / **

*. DS_Store

Это удалит каталог bin и все файлы * .DS_Store из репозитория

...