添加svn回购到现有的git回购?

我知道你可以通过使用git svn init来跟踪一个svn的repo,但是如果你想创build一个全新的repo的话。

我的情况是,我目前已经有了一个现有的git仓库,并且希望通过在我当前的git仓库中将其作为一个远程分支来跟踪svn仓库的主干。

有什么build议么?

昨晚search后,终于find了答案:

http://i-nz.net/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/

看来你必须真正进入并手动编辑.git / config文件,以便将svn分支添加到现有的git仓库中。 所以根据这些指示,我将不得不为每个分支添加一个条目。

1)在.git / config中定义新分支:

[svn-remote "release-branch"] url = svn+ssh://xxxx@mono-cvs.ximian.com/source/branches/mono-2-2/mcs fetch = :refs/remotes/git-svn-release-branch 

2)导入SVN分支。 SVN_BRANCHED_REVISION是SVN发生分支的修改。

 [~]$ git svn fetch release-branch -r SVN_BRANCHED_REVISION 

3)将本地Git分支连接到远程分支:

 [~]$ git branch --track release git-svn-release-branch 

5)结帐和更新

 [~]$ git checkout release [~]$ git svn rebase 

你可以通过下面的步骤findSVN_BRANCHED_REVISION:

 $ svn log --stop-on-copy PATH_TO_BRANCH 

这实际上就是git svn init所做的 – 其他的git svn命令只是简单地将事情合并在一起,等等。你可以git svn init和/或复制一个用git svn clone克隆的SVN repo的布局,你应该能够拉入本地分支,或获取等等。 花一些时间在git svn的man page上,你不应该把一些东西拼在一起, 如果你这样做,#freeode上的#git是一个很好的资源。 所以,这应该可以没有太多的麻烦,但我不知道如何做到这一切。

这个问题的答案( https://stackoverflow.com/a/840411和https://stackoverflow.com/a/7592152 )不再适用于Git v1.8.3.2( https://stackoverflow.com/ a / 19833311 )。 你可以这样做:

1)在.git / config中定义新分支:

 [svn-remote "release-branch"] url = svn+ssh://xxxx@mono-cvs.ximian.com/source/branches/mono-2-2/mcs fetch = :refs/remotes/git-svn-release-branch 

2)导入SVN分支。 SVN_BRANCHED_REVISION是SVN发生分支的修改。

 $ git svn fetch release-branch -r SVN_BRANCHED_REVISION 

3)创build分支并将本地Git分支连接到远程分支:

 $ git checkout -b release refs/remotes/git-svn-release-branch 

5)更新

 $ git svn rebase