将svn repo添加到现有的git repo中?

rip*_*747 44 svn git git-svn

我知道你可以使用git svn init来跟踪一个带有git的svn repo,但是如果你想创建一个全新的repo,那就是这样.

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

有什么建议?

rip*_*747 23

经过昨晚的搜索,我终于找到了答案:

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

看来你必须实际进入并手动编辑.git/config文件才能将svn分支添加到现有的git repo中.因此,根据这些说明,我必须为每个分支添加一个条目.

  • 它从 git v1.8.3.2 开始停止工作,有关更新的解决方案,请参阅答案 http://stackoverflow.com/a/38706530/3303668 (2认同)

Kun*_*ing 11

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
Run Code Online (Sandbox Code Playgroud)

2)导入SVN分支.SVN_BRANCHED_REVISION是分支发生在SVN时的修订版.

[~]$ git svn fetch release-branch -r SVN_BRANCHED_REVISION
Run Code Online (Sandbox Code Playgroud)

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

[~]$ git branch --track release git-svn-release-branch
Run Code Online (Sandbox Code Playgroud)

5)结帐和更新

[~]$ git checkout release
[~]$ git svn rebase
Run Code Online (Sandbox Code Playgroud)

  • 看起来这个答案只是从http://ivanz.com/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/复制并粘贴 (4认同)

Elm*_*mer 9

这个问题的答案(/sf/answers/58828801//sf/answers/531450671/)从 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
Run Code Online (Sandbox Code Playgroud)

2)导入SVN分支。SVN_BRANCHED_REVISION 是分支在 SVN 中发生时的修订。

$ git svn fetch release-branch -r SVN_BRANCHED_REVISION
Run Code Online (Sandbox Code Playgroud)

3) 创建分支并将本地 Git 分支挂接到远程分支:

$ git checkout -b release refs/remotes/git-svn-release-branch
Run Code Online (Sandbox Code Playgroud)

5) 更新

$ git svn rebase
Run Code Online (Sandbox Code Playgroud)

  • 这可能应该被标记为正确答案。当前检查的答案不适用于当前的 git (2.18.0),这适用。其他答案有一些小问题,使它们无法结合在一起。这就是问题所问的。 (3认同)