Mercurial / .hgignore - Как игнорировать все, кроме содержимого папки? - PullRequest
7 голосов
/ 01 апреля 2010

У меня есть проект NetBeans, а хранилище Mercurial находится в корне проекта. Я хотел бы, чтобы он игнорировал все, кроме содержимого папок "src" и "test" и самого .hgignore.

Я не знаком с регулярными выражениями и не могу придумать, что будет делать это.

Те, которые я пробовал:

(?! ЦСИ /.*)

(?! тест /.*)

(?! ^. Hgignore)

(?! ЦСИ /. | тест /. | .hgignore)

Они, кажется, игнорируют все, я не могу понять, почему.

Любой совет был бы великолепен.

Ответы [ 2 ]

7 голосов
/ 01 апреля 2010

Это похоже на работу:

syntax: regexp

^(?!src|test|\.hgignore)

Это в основном ваша последняя попытка, но:

  • Это корень в начале строки с ^ и
  • Не требуется завершающий слеш для имен каталогов.

Второй пункт важен, поскольку, как указано в , руководство гласит:

Например, скажем, у нас есть неотслеживаемый файл file.c в / b / file.c внутри нашего репозитория. Mercurial будет игнорировать file.c, если какой-либо шаблон в .hgignore соответствует a / b / file.c, a / b или a.

Таким образом, ваш шаблон должен не соответствовать src.

3 голосов
/ 01 апреля 2010
^(?!src\b|test\b|\.hgignore$).*$

должно работать. Он соответствует любой строке, которая не начинается со слова src или test или полностью состоит из .hgignore.

Он использует привязку границы слова \b, чтобы гарантировать, что файлы типа testtube.txt или srcontrol.txt не будут случайно совпадать. Тем не менее, он будет «пропускать» в таких файлах, как src.txt, где есть граница слова, отличная от косой черты.

...