Вопрос по regex – Синтаксис .hgignore для игнорирования только файлов, а не каталогов?

11

У меня есть проблема, которую я не могу понять. Я использую TortoiseHg (версия 0.7.5) в Windows, но в Linux у меня та же проблема. Вот

Моя.hgignore файл

<code>syntax: regexp
^[^\\/]+$
</code>

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

Например, если у меня так:

<code>.hg
+mydir1
+mydir2
-myfile1
-myfile2
-anotherfile1
-anotherfile2 
.hgignore
</code>

Я хочу, чтобы myfile1 (2) и anotherfile1 (2) игнорировались (имена приведены только для целей данного примера - у них нет простого правила, которое можно легко вставить в файл hgignore)

Есть ли что-то, чего мне не хватает, потому что я почти уверен, что регулярное выражение хорошо (я даже проверял это)? Идеи?

Есть ли более простой способ добиться этого? [добавить в список игнорируемых файлов, которые находятся в корне ртутного хранилища]

Ваш Ответ

2   ответа
11

#mercurial на irc.freenode.net, и вы получили ответ, что вы не можете различить файлы и каталоги - каталог сопоставляется без слеша, который вы ищете в своем регулярном выражении.

Однако, если вы можете предположить, что ваши каталоги никогда не будут содержать точку останова., но ваши файлы будут, тогда что-то вроде этого работает:

^[^/]*\..*$

Я проверил это в репозитории:

% hg status -ui
? a.txt
? bbb
? foo/x.txt
? foo/yyy

Добавление.hgignore файл дает:

% hg status -ui
? bbb
? foo/x.txt
? foo/yyy
I .hgignore
I a.txt

который указывает на то, чтоa.txt файл правильно игнорируется в вашем корневом каталоге, ноx.txt вfoo подкаталога нет. Вы также можете увидеть, что файл с именем простоbbb в корневом каталоге -н игнорируется. Но, возможно, вы можете сами добавить такие файлы в.hgignore файл

Если у вас есть каталог какbar.baz в вашем корневом каталоге, тогда этот каталог и все файлы в нем будут игнорироваться. Надеюсь, это немного поможет.

Большое спасибо, это подтверждает мои убеждения. INS
Вы также можете сделать это для subdir и игнорировать php-файлы, такие как:wpblog/[^/]*\.php$ DynamicDan
7

Создайте пустой файл «.hidden» в своем каталоге, затем добавьте в .hgignore:

^mydir/(?!\.hidden).+$

Это игнорирует все файлы в каталоге, кроме «.hidden».

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