添加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