Я использую git-svn в многопроектном многоплатформенном репозитории svn.
Обычно у меня есть точка локального git-репо прямо в интересующем каталоге svn-репо, и я отказываюсь от какой-либо встроенной поддержки веток и так далее, хотя я слышу хорошие отзывы о поддержке. Кажется, в документации git-core есть поддержка git svn branch.
Как я это делаю:
git svn init http://repo.farts.com/svn/path/to/the/directory/of/project
git svn fetch
А когда пора совершать ...
git stash
git svn rebase
git stash pop
git commit -am "Some really awesome stuff"
git svn dcommit
У меня не было проблем с этим. Попадание в тайник запускает слияние, если произошли изменения в коде, на который вы перебазировали. Rebase сохраняет историю линейной. Возможно, есть лучший способ сделать это, но я выжил, с описанным выше процессом плюс git mergetool.
Вы также можете посмотреть пользовательские параметры макета, которые поставляются с git svn, чтобы указать, где ствол, ветви и теги связаны друг с другом. Вы можете указать каждый из них отдельно с помощью тегов -T trunk -b ветки -t - они являются относительными по умолчанию, но вы можете указать абсолютные пути.
Также, в качестве совета, я бы лично использовал клиента SVN в зависимости от чувствительности стажировки. Я не являюсь членом добропорядочного гражданина гит-тауна, говоря это, но контроль над источниками может быть основной болью в заднице, а также святой почвой для людей - если это причинит кому-то одну унцию неудобства, его почти не стоит. При этом, если вы можете оставаться независимым и никого не обременять своим выбором инструментов, счастливого пути; -)
Josh