Игнорирование папок в Mercurial
Предостережение: я пробую все возможности, перечисленные здесь: Как я могу игнорировать все в папке в 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 ответа
Попробуйте это без косой черты после каретки в версии регулярного выражения.
^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 не отображается и не игнорируется.
Оба случая работали для меня (на 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, говоря, что некоторые поля M (модифицированные) или! (отсутствует) в папках, которые вы только что добавили в список игнорирования!
Вы можете использовать отрицательные предварительные и нулевые утверждения нулевой ширины, чтобы указать, что вы хотите игнорировать test
только когда ему не предшествует srcProject
и не сопровождается TestManager
:
syntax: regexp
(?<!srcProject\\)test\\(?!TestManager)
Mercurial использует регулярные выражения Python, поэтому вы можете найти больше информации об утверждениях нулевой ширины в документации по Python: https://docs.python.org/library/re.html
Создайте файл.hgignore в корневой директории хранилища.
Теперь добавьте следующее содержимое в файл.
синтаксис: глобус
бен / **
*.DS_Store
Это удалит каталог bin и все файлы *.DS_Store из хранилища.