По сути, у меня есть структура проекта
repo
---.svn
---module1
---trunk
---branches -- <some-branches>
---tags -- <some-tags>
---module2
---trunk
---branches -- <some-branches>
---tags -- <some-tags>
---module3
---trunk
---branches -- <some-branches>
---tags -- <some-tags>
Чтобы перейти на git, я сделал svn mv
и реорганизовал структуру с помощью коммита "restructure-code" в
repo
---.svn
---trunk
---module1
---module2
---module3
---branches
---some-branch
---module1
---module2
---module3
---tags
---some-tag
---module1
---module2
---module3
После этого я использовал git-svn, чтобы перенести его в git. Но вся история коммитов до «кода реструктуризации» теряется. Я также попробовал svn2git, но он дал тот же результат. Первым коммитом был сам «код реструктуризации». git log
показывает только до этого момента. Даже git log <any-file/folder>
показывает «код реструктуризации» в качестве первого коммита со статусом A (добавлен файл / каталог).
Я думаю, что git-svn / svn2git - это то, как логически корректироватьИстория коммитов, чтобы понять смысл стандартного макета SVN, потому что, если старые коммиты были сохранены в git, скажем, в module1-> branch-> 1.0, и я хочу вернуться в это состояние, это не будет иметь никакого смысла, так как придется создавать старыеструктура папок и, более того, некоторые коммиты выполняются коллективно, как
svn ci module1/trunk/file1 module1/branches/1.0/file1
Есть ли способ преодолеть эту проблему и достичь надлежащего состояния в git, сохранив все коммиты и сохранив желаемую структуру ветвей?