按目标文件内容替换符号链接

时间:2014-01-22 15:25:20

标签: git svn version-control symlink version-control-migration

我有一个svn树,我想变成多个独立的git存储库。此迁移的一个方面是,在subversion树中作为跨模块符号链接的inode应该被git存储库中的实际文件内容替换。因此,如果A/foo在某个时刻是B/foo的符号链接,那么相应的git提交应该有一个普通文件A/foo,其内容是B/foo的内容。如果稍后某些svn提交更改了B/foo的内容,则A的git模块应该具有匹配的提交以反映此更改。

我可以使用哪些工具?

现在,这是我迄今为止最好的计划:

  1. Clone the whole svn into git
  2. fast-export
  3. 使用一些自定义编写的丢弃代码按下输出,将符号链接转换为内容文件
  4. fast-import将结果导入新的单个git repo
  5. 来自的
  6. Create submodules

    但也许您可以使用现有代码,现有功能,现有工具或使用我无法想到的快捷方式来推荐更简单的解决方案。

    也许甚至有一种方法可以在颠覆方面处理更多这些步骤。由于我大量使用创建文件的subversion副本,并且因为这个概念在git概念中只能表达得很差,我担心上面的方法可能会因复制文件而导致版本历史失效。

0 个答案:

没有答案