4

我有一个多项目 SVN 存储库,我正在尝试将其转换为多个 Git 存储库,每个项目一个。

我可以用 git-svn 处理的那部分,我已经找到了多个 HOWTO 类型的文档,但是我遇到麻烦的是,当前项目之一是通过在 SVN 中多次重命名和合并不同项目的部分而创建的。在 SVN 中,我可以通过重命名/移动查看单个文件的历史记录,但是当我使用 git-svn 并指定项目主干目录的当前位置时,它只会将历史记录转换到布局更改的位置,我当主干从不同的路径移动时,丢失所有旧的历史。

具体来说,我的存储库的布局曾经看起来像这样:

/projectA/trunk/src/com/mycompany/projectA/MyClass.java
/projectB/trunk/src/com/mycompany/projectB/OtherClass.java

这被转换为:

/trunk/projectA/src/com/mycompany/projectA/MyClass.java
/trunk/projectB/src/com/mycompany/projectB/OtherClass.java

然后它被重命名并将 src 目录合并到一个公共主干上:

/combined-project/trunk/src/com/mycomany/projectA/MyClass.java
/combined-project/trunk/src/com/mycomany/projectB/OtherClass.java

所以如果我运行:

git svn clone --trunk=/combined-project/trunk

然后我得到一个 git 存储库,其历史只能追溯到最近的重命名。有人对我如何让 git svn clone 通过重命名跟随主干有任何建议吗?

4

0 回答 0