Миграция из SVN различных исходных папок в нестандартном формате в GIT

Несколько репозиториев SVN, которые мне нужно перенести, имеют очень беспорядочную структуру. Большинство из них я разобрался как их конвертировать, но один меня глючит и я не нахожу ответа в сети.

Репозиторий SVN имеет следующую структуру папок:

/trunk/src
/trunk/doc
/trunk/tools/toolA
/trunk/tools/toolB
/toolX

Вопрос в том, как мне получить это в основную ветку GIT, например:

/src
/doc
/tools/toolA
/tools/toolB
/tools/toolX

1
47
1

Ответ:

Решено

so I'd have to import the project with --trunk / and get a completely flat layout?

Нет, лучше сделать классический импорт, получив в нем репозиторий с /trunk/src вместо src.

Затем с помощью git filter-branch, как показано здесь (2016) или даже здесь (2011), вы можете mv/переименовать эти файлы, чтобы удалить все /trunk/ на их пути.

Это, конечно, справедливо для одноразового импорта, а не для двустороннего импорта/экспорта, когда вы все равно хотите позже вернуть данные git svn dcommit в исходный репозиторий SVN.