Regex отрицательный взгляд в файле hgignore

Я ищу способ изменить мой файл.hgignore, чтобы игнорировать все файлы "Properties / AssemblyInfo.cs", за исключением тех, которые находятся в подпапках "Test /" или "Tests /".

Я пытался использовать негативное выражение(?<!Test)/Properties/AssemblyInfo\.cs$, но я не нашел способа "игнорировать" в обеих папках "Test /" и "Tests /".

3 ответа

Решение

Python не поддерживает просмотр с переменной длиной.

Но \b(?<!Test)(?<!Tests)/Properties/AssemblyInfo\.cs$ должно сработать.

Просто для того, чтобы сделать это для любых будущих искателей: такие вычисления как регулярное выражение необходимы, только если вы ожидаете, что в будущем в рабочий каталог будет добавлено намного больше файлов исключений.

Если вы просто хотите сделать текущие исключения, вы можете просто hg add их. В отличие от SVN и CVS, в Mercurial вы можете add игнорируемый файл, и он переопределяет .hgignore - будущие изменения будут автоматически отслеживаться.

Это не неслыханно иметь .* в вашем .hgignore файл, а затем hg add файлы, которые вы хотите отслеживать.

В этом случае, более традиционный ртутный способ сделать это будет .hgignore файл как это:

/Properties/AssemblyInfo\.cs

с последующим:

$ hg add Test/Properties/AssemblyInfo.cs
$ hg add Tests/Properties/AssemblyInfo.cs

Если у вас есть сотни тестов и тестов, вы можете добавить их с find, но если вы создаете новые каждый день, то регулярное выражение определенно является подходящим вариантом.

Обычно вы просто делаете Tests?, но, поскольку в зависимости от механизма регулярных выражений динамический просмотр не разрешен, вы можете просто использовать две ветви:

(?<!Test|Tests)/Properties/AssemblyInfo\.cs$

Другие вопросы по тегам