2015-04-26 2 views
3

Я пытаюсь игнорировать все, кроме файла «test.ext» в каталоге «data» & все его подкаталоги. однако, когда я положил в hgignore:Mercurial .hgignore negative lookbehind regex

syntax: regexp 
^data\/.*(?<!\/test\.ext)$ 

Это только игнорирует

data\test.ext 

И не игнорировать:

data\images\test.ext 

ответ

4

Если новые подкаталоги не всплывал часто, вы гораздо лучше просто игнорируя data, а затем hg add в файлах test.ext, которые вы хотите отслеживать. Добавление файла на 100% переопределяет игнорирование, а запуск find data -name test.ext | xargs hg add один раз в синей луне лучше, чем мучительное регулярное выражение.

0

От the hg docs: «Там нет простого способа игнорировать все, а набор файлов Попытки использовать перевернутый матч регулярного выражения потерпит неудачу, когда в сочетании с другими образцами Это намеренное ограничение, так как альтернативные форматы были сочтены.. слишком вероятно, чтобы запутать пользователей, чтобы они стоили дополнительной гибкости ».

Смежные вопросы