Поддерживает ли subgit несколько каталогов веток?

Поддерживает ли subgit несколько каталогов ветвей?

Например, если у вас было репо SVN, которое выглядело следующим образом:

trunk/...
branches/<branch>/...
releases/<release>/...
tags/<tag>/...

но "релизы" действительно были только ветвями выпуска.

Мы хотели бы, чтобы "ветки/" и "релизы/" в SVN стали ветвями в Git.

И если новая ветвь была создана в Git, то в SVN мы хотели бы, чтобы новый каталог в "branch/" (т.е. "релизы/" устарел).

Так что мы хотим, это множественные отображения ветвлений, но с одним из них, являющимся "основным".

Ответ 1

Да, начиная с версии 2.0 вы можете указать опцию "ветки" в конфигурации SubGit несколько раз. Там ограничение: левая и правая части шаблонов не должны пересекаться или быть одинаковыми (иначе правила становятся двусмысленными):

trunk = trunk:refs/heads/master
branches = branches/*:refs/heads/*
branches = releases/*:refs/heads/releases/*
shelves = shelves/*:refs/shelves/*
tags = tags/*:refs/tags/*

Вы не можете сопоставлять releases/* и branches/* с refs/heads/* одновременно, потому что это делает правила неоднозначными (в этом случае SubGit не знает, следует ли сопоставлять refs/heads/branch с branches/branch или с releases/branch).