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

我知道您可以通过使用git svn init来使用git跟踪svn仓库,但这是为了创建全新的仓库。

我的情况是我当前已经有一个git repo,并且想通过将svn repo设置为当前git repo中的远程分支来跟踪svn repo的主干。

有什么建议?

rip747 asked 2020-07-30T15:47:24Z
5个解决方案
23 votes

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

[HTTP://i-你在.net/2009/01/15/selective-import-of-SVN-branches-into-啊-git git-SVN-repository/]

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

rip747 answered 2020-07-30T15:47:49Z
11 votes

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
Kun Ling answered 2020-07-30T15:48:22Z
4 votes

从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)创建分支并将本地Git分支连接到远程分支:

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

5)更新

$ git svn rebase
Elmer answered 2020-07-30T15:49:00Z
3 votes

您可以通过执行以下操作找到SVN_BRANCHED_REVISION:

$ svn log --stop-on-copy PATH_TO_BRANCH
Ian Mariano answered 2020-07-30T15:49:19Z
2 votes

实际上,这就是git svn init的作用-其他git svn命令只是将内容合并在一起,等等。您可以git svn init和/或复制用git svn clone克隆的SVN存储库的布局,并且您应该能够 拉到本地分支,或获取,依此类推。 在git svn的手册页上花一些时间,将某些东西拼凑在一起应该没有太大的麻烦; 如果这样做,在freenode上的#git是一个很好的资源。 因此,这应该没有太多麻烦就可以实现,但是我不知道该怎么做。

jeffcook2150 answered 2020-07-30T15:49:40Z
translate from https://stackoverflow.com:/questions/746151/add-svn-repo-to-existing-git-repo