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

Я думаю, что мы должны отойти от «С». Это слишком старое! Но старая собака все еще лает громче!

11
задан Martin Geisler 24 February 2012 в 19:55
поделиться

2 ответа

Я передал этот вопрос в #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 в корневом каталоге, тогда этот каталог и все файлы внутри будут проигнорированы. Надеюсь, это немного поможет.

11
ответ дан 3 December 2019 в 06:47
поделиться

Вот подвох:

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

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

Это приведет к игнорированию всех файлов в каталоге, кроме " .hidden ".

7
ответ дан 3 December 2019 в 06:47
поделиться
Другие вопросы по тегам:

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