我有一个svn树,我想变成多个独立的git存储库。此迁移的一个方面是,在subversion树中作为跨模块符号链接的inode应该被git存储库中的实际文件内容替换。因此,如果A/foo
在某个时刻是B/foo
的符号链接,那么相应的git提交应该有一个普通文件A/foo
,其内容是B/foo
的内容。如果稍后某些svn提交更改了B/foo
的内容,则A
的git模块应该具有匹配的提交以反映此更改。
我可以使用哪些工具?
现在,这是我迄今为止最好的计划:
fast-export
fast-import
将结果导入新的单个git repo 但也许您可以使用现有代码,现有功能,现有工具或使用我无法想到的快捷方式来推荐更简单的解决方案。
也许甚至有一种方法可以在颠覆方面处理更多这些步骤。由于我大量使用创建文件的subversion副本,并且因为这个概念在git概念中只能表达得很差,我担心上面的方法可能会因复制文件而导致版本历史失效。