将具有多个初始提交的 git 存储库导入到 svn 中



>我基本上有以下 git 存储库布局

x ---- a -------------- b  -------------- c  ---->
         y -- 1 -- 2 -- ┛  z -- i -- j -- ┛

其中 xyz 是初始提交。我有这些多个初始提交,因为我使用

git fetch git://github.com/<user>/<repo>.git refs/heads/master:refs/heads/<repo>
git merge --no-commit <repo>
git read-tree --reset -u HEAD
git read-tree -u --prefix=lib/<repo> <repo>
git commit -m "Pulling <repo>"
git branch -d <repo>

多次。所有子模块基本上具有相同的文件布局。

要将 git 存储库导入 svn,我初始化了一个空的 svn 存储库并通过

git svn clone http://some/svn/repo/my-project

然后我试了

cd my-project
git remote add dev /path/to/working/git/big-repository
git pull dev master
git svn rebase

但是变基失败,因为一些合并错误似乎发生了,因为所有子模块的顶级(pom.xml)中都有一个相同的文件

有什么方法可以将 git 存储库导入 svn 中以保存历史记录?

希望其他人能提供一个更优雅的答案,但如果问题真的是这个冲突的文件,你可能会使用 git filter-branch 从项目历史记录中删除该文件。

此页面有一个示例。

最新更新