Как игнорируются пути в git svn?

У меня есть простая структура репо, подобная этой:

trunk
    code
    othercode
    doc
    misc
branches
    b1
        code
        othercode
        doc
        misc
    b2
tags
    t1
    t2

Я пытаюсь использовать git svn для его клонирования, но хочу опустить doc и misc в стволе + все теги и ветки. Однако опция ignore-paths работает не так, как я ожидал.

ignore-paths = (doc|misc)

Кажется, работает, но я беспокоюсь, что это также исключит путь, подобный trunk/code/proj1/doc/, который я хочу сохранить.

ignore-paths = ^(doc|misc)

Не работает -- doc и misc подтягиваются начальной командой git svn fetch. Как мне получить работающее регулярное выражение, которое будет соответствовать только каталогам в корне, как это? На странице руководства не указано, соответствует ли ignore-paths «относительному» пути, который окажется в корневом каталоге клона git (doc и т. д.), или «полному» пути, как показано в удаленном SVN (branches/b1/doc и т. д.) , или что-то другое.


person Matt McHenry    schedule 04.05.2012    source источник


Ответы (1)


Кажется, он соответствует полному пути в репозитории SVN. Это регулярное выражение, которое включает trunk/tags/branches часть пути SVN, помогло:

ignore-paths = ^(trunk|tags/[^/]*|branches/[^/]*)/(doc|misc)/

Другими словами: путь должен начинаться с одного из:

  • trunk
  • tags/, за которым может следовать один сегмент пути (не содержащий /)
  • branches/, за которым может следовать один сегмент пути (не содержащий /)

... затем сегмент пути с именем doc или misc.

person Matt McHenry    schedule 06.05.2012
comment
Есть ли эквивалентный метод для репозиториев svn без макета svn? - person Spenhouet; 18.08.2014
comment
@besnep, если вы имеете в виду без стандартного макета svn, то я думаю, да: поскольку регулярное выражение сопоставляется с полным путем, вы можете использовать его независимо от того, как устроен ваш репозиторий. - person Matt McHenry; 18.08.2014
comment
@MattMcHenry, не совсем так. Я имел в виду, что без макета svn нет абсолютно никакого макета. Разделение версий было сделано с помощью svn-copy. Макет SVN не используется. Так что ни ствола, ни ответвления... если я правильно понял. - person Spenhouet; 18.08.2014
comment
@besnep, я думаю, что это, вероятно, требует отдельного вопроса; в комментариях будет сложно разобраться. - person Matt McHenry; 18.08.2014
comment
Я мог бы создать новый отдельный вопрос, но перед этим мне нужно было бы найти решение другой моей проблемы: stackoverflow.com/questions/25358628/ - person Spenhouet; 19.08.2014
comment
можете ли вы объяснить свое регулярное выражение, пожалуйста? - person Zennichimaro; 15.09.2017