基本上我有一个项目结构
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-> branches-> 1.0内部说,指出这没有任何意义,因为它必须创建旧的文件夹结构,而且某些提交是像
一样集体完成的svn ci module1/trunk/file1 module1/branches/1.0/file1
总有办法克服这个问题并在git中保留所有提交并保留所需的分支结构的状态吗?