48

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

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

有什么建议么?

4

4 回答 4

21

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

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

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

于 2009-05-08T15:30:12.057 回答
9

这个问题的答案(https://stackoverflow.com/a/840411https://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)创建分支并将本地Git分支连接到远程分支:

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

5) 更新

$ git svn rebase
于 2016-08-01T19:19:36.473 回答
3

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

$ svn log --stop-on-copy PATH_TO_BRANCH
于 2012-11-01T13:10:33.483 回答
2

这实际上是 git svn init 所做的——其他 git svn 命令只是将事物合并在一起,等等。您可以 git svn init 和/或复制使用 git svn clone 克隆的 SVN 存储库的布局,您应该能够拉入本地分支,或获取,等等。花点时间阅读 git svn 的手册页,你应该不会有太多的麻烦来拼凑一些东西;如果你这样做了,freenode 上的#git 是一个很好的资源。所以,这应该是可能的,没有太多麻烦,但我不知道该怎么做。

于 2009-04-14T03:08:42.437 回答