Подвижное .hgignore отрицательное предвидение

Используя Подвижный, я должен проигнорировать все файлы за исключением тех, которые в определенном каталоге, названном "хранителями".

На первый взгляд, это казалось легким использованием Regex и Отрицательное Предвидение; однако, хотя я могу проверить свой regex в Regex Buddy и других инструментах в TortoiseHg, он не работает как ожидалось.

Файлы:

  • junk\junk.txt
  • junk\text
  • keepers\test\test
  • keepers\test\test2\hi.txt
  • keepersblah.txt

Только эти два файла при хранителях должны быть не быть проигнорированными.

Вот regex, я надеялся, будет работать:

^(?!keepers/).+$

К сожалению, это заставляет все файлы быть проигнорированными. Если я изменяю его на:

^(?!keepers).+$

это работает, как Вы ожидали бы. Это - это, игнорирует любые файлы/папки, которые не запускаются с хранителей. Но я действительно хочу проигнорировать файлы, которые запускаются с хранителей.

Причудливо, если я изменяю его на это:

^(?!keepers/).+\..+$

Это будет правильно соответствовать папке, но это не проигнорирует файлы, которые не находятся в папке хранителей, если у них нет расширения.

Любой совет ценился бы.

удаление мертвой ссылки ImageShack

10
задан SuperBiasedMan 18 August 2015 в 08:33
поделиться

1 ответ

Проблема с вашим первым выражением заключается в том, что регулярное выражение также проверяется против самих «хранителей». Этот случай может быть добавлен с дополнительным условием:

^(?!keepers(?:/|$))

или (менее компактно, но проще для понимания):

^(?!keepers/|keepers$)
7
ответ дан 4 December 2019 в 02:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: