.hgignore для игнорирования только файлов, а не каталогов?
У меня есть проблема, которую я не могу понять. Я использую TortoiseHg (версия 0.7.5) в Windows, но в Linux у меня такая же проблема. Вот он:
Мой .hgignore
файл:
syntax: regexp
^[^\\/]+$
Я пытаюсь добавить в список игнорирования файлы, которые находятся в корне репозитория hg.
Например, если мне это нравится:
.hg
+mydir1
+mydir2
-myfile1
-myfile2
-anotherfile1
-anotherfile2
.hgignore
Я хочу, чтобы myfile1 (2) и anotherfile1 (2) игнорировались (имена предназначены только для этого примера - они не имеют простого правила, которое может быть легко помещено в файл hgignore)
Есть ли что-то, что мне не хватает, потому что я уверен, что regexp хорош (я даже тестировал его)? Идеи?
Есть ли более простой способ достичь этого? [добавить в файлы списка игнорирования, которые находятся в корневом каталоге меркурийного репозитория]
Ответы
Ответ 1
Я передал этот вопрос в #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
нет. Вы также можете увидеть, что файл с именем just bbb
в корневом каталоге не игнорируется. Но, возможно, вы можете добавить такие файлы самостоятельно в файл .hgignore
.
Если в вашем корневом каталоге есть каталог типа bar.baz
, то этот каталог и все файлы внутри будут игнорироваться. Надеюсь, это немного поможет.
Ответ 2
Вот трюк:
Создайте пустой файл ".hidden" в вашем каталоге, чем добавьте в .hgignore:
^mydir/(?!\.hidden).+$
Это игнорирует все файлы в каталоге, кроме ".hidden".