По моему опыту, ситуация, которую вы описываете, является частым явлением в SVN.Люди создают «произвольный ствол».
В идеале проекты должны следовать соглашениям Subversion .Это означает, что каждый проект будет иметь подпапку с названием «ствол, ветви, теги».Тогда при миграции с помощью svn2git все, что вам нужно, это правило для этих трех папок:
create repository fw
end repository
match /Project/trunk/
repository fw
branch master
end match
match /Project/branches/([^/]+)/
repository fw
branch \1
end match
match /Project/tags/([^/]+)/
repository fw
branch refs/tags/\1
end match
К сожалению, если вы переносите репозиторий, который не строго следует соглашению, то вы можете иметь произвольные стволы, которыеозначает совершенно отдельную историю.Поэтому вам нужно отдельное правило, например, у вас может быть такое правило:
match /Project/trunk/subdir1/subdir2/myproj/trunk
repository fw
branch master
end match
Возможно, вам понадобится написать сценарий для изучения путей svn, которые генерируют правила на основе обнаруженных путей.