Я думаю, что мы должны отойти от «С». Это слишком старое! Но старая собака все еще лает громче!
Я передал этот вопрос в #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
в корневом каталоге, тогда этот каталог и все файлы внутри будут проигнорированы. Надеюсь, это немного поможет.
Вот подвох:
Создайте пустой файл ".hidden" в вашем каталоге, а затем добавьте его в .hgignore:
^mydir/(?!\.hidden).+$
Это приведет к игнорированию всех файлов в каталоге, кроме " .hidden ".