将多个初始提交导入git repo到svn

时间:2012-04-25 20:28:12

标签: git import git-svn

我基本上有以下git repo布局

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

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

将多个git存储库合并到一个大型存储库中
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 repo导入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

,因此rebase失败了

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

1 个答案:

答案 0 :(得分:0)

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

This page有一个例子。