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