我知道你可以通过使用git svn init跟踪一个使用git的svn repo,但是如果你想创建一个全新的repo,添加svn回购到现有的git回购?
我的情况是,我目前已经有一个现有的git仓库,并且希望通过在我当前的git仓库中将其作为远程分支来跟踪svn仓库的主干。
有什么建议吗?
我知道你可以通过使用git svn init跟踪一个使用git的svn repo,但是如果你想创建一个全新的repo,添加svn回购到现有的git回购?
我的情况是,我目前已经有一个现有的git仓库,并且希望通过在我当前的git仓库中将其作为远程分支来跟踪svn仓库的主干。
有什么建议吗?
昨晚搜索后,我终于找到了答案:
http://i-nz.net/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/
看来你必须真正去和手动编辑的.git/config文件,以添加一个SVN分支到现有的git仓库。所以根据这些指示,我将不得不为每个分支添加一个条目。
我发现这个有帮助: * http://blog.tfd.co.uk/2008/11/21/adding-a-branch-to-git/ – 2011-05-07 04:32:39
其实,这是什么混帐SVN init却 - 其他的git svn的命令简单地合并在一起的东西,等你可以的git的svn init和/或复制SVN的布局回购与GIT SVN克隆克隆,你应该只需要拉入本地分支或取回等等。花一些时间在git svn的man page上,你不应该在拼凑一些东西时遇到太多麻烦;如果你这样做,freenode上的#git是一个很好的资源。所以,这应该可以没有太多的麻烦,但我不知道如何做到这一切。
+1 #git。这对我来说是一个很好的资源。 – Abizern 2009-04-14 03:23:24
为了说明这是`git svn init`所做的+1。 – 2013-03-18 17:50:25
1)定义新的分支中的.git /配置:
[svn-remote "release-branch"]
url = svn+ssh://[email protected]/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
您可以通过执行找到SVN_BRANCHED_REVISION:
$ svn log --stop-on-copy PATH_TO_BRANCH
答案为th是问题(https://stackoverflow.com/a/840411和https://stackoverflow.com/a/7592152)不再适用于Git v1.8.3.2(https://stackoverflow.com/a/19833311)。你可以这样做,而不是:
1)定义新的分支。git的中/配置:
[svn-remote "release-branch"]
url = svn+ssh://[email protected]/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 checkout -b release refs/remotes/git-svn-release-branch
5)更新
$ git svn rebase
我想这个答案也是正确的位置:HTTP: //stackoverflow.com/a/1430782/1046584 – 2016-02-10 15:48:46