2010-03-01 5 views
3

Я хочу игнорировать все. BUT a вложенная папка в Mercurial.Игнорирование всего, кроме подкатегории в Mercurial

Папка Я хочу, чтобы:

a/b/c/d/e/f 

Все остальное в:

a/b 

Должно быть проигнорировано.

Я использую режим regexp в файле .hgignore. Это то, что я до сих пор:

a/b/(?!c) 
a/b/c/(?!d) 
a/b/c/d/(?!e) 
a/b/c/d/e/(?!f) 

Даже если это работает отлично, я хотел бы, чтобы уменьшить его до одной строки:

a/b/(?!c/d/e/f) 

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

Подсказка?

ответ

1

вы пробовали это:

a/b/(?!c).* 
+0

Это не будет игнорировать a/b/c/doom, например ... :( –

0
^a/b/(?!c/d/e/f).*$ 
+0

Это тоже не сработало :( –

0

Почему бы не просто создать ртутной репо в/B/C/D/E/F?

+0

Поскольку a является основным репо, b является внешней зависимостью и a/b/c/d/e/f является компонентом b. –

1

Возможно, вы уже знаете это, но вы можете просто добавить материал в a/b/c/d/e/f без добавления исключения в .hgignore. Это не идеально, вы должны помнить, что добавляете новые файлы, но я думал, что упомянул об этом, поскольку это неочевидно для наших CVS/SVN беженцев.

+0

Eheh. Да, я знал об этом, но я бы предпочел избежать этой привычки. Это действительно подвержено ошибкам, и я обычно забываю о вещах ... –

+0

Достаточно честный. может автоматизировать его с чем-то вроде «hg status -i -n | grep» ^/a/b/c/d/e/f '| xargs hg add', который вы могли бы даже положить в крючок с фиксацией. Действительно хотя, если у вас есть какой-либо контроль над макетом этого проекта, вы, вероятно, должны просто перемещать все, что важно, и 5 уровней в глубину до более верхнего уровня. :) –

Смежные вопросы