我知道你可以通过使用 git svn init 来跟踪 git 的 svn 存储库,但是如果你想创建一个全新的存储库的话。
我的情况是我目前已经有一个现有的 git repo 并希望通过在我当前的 git repo 中将其设置为远程分支来跟踪 svn repo 的主干。
有什么建议么?
经过昨晚的搜索,我终于找到了答案:
http://i-nz.net/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/
看来您必须实际进入并手动编辑 .git/config 文件才能将 svn 分支添加到现有的 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)创建分支并将本地Git分支连接到远程分支:
$ git checkout -b release refs/remotes/git-svn-release-branch
5) 更新
$ git svn rebase
您可以通过执行以下操作找到 SVN_BRANCHED_REVISION:
$ svn log --stop-on-copy PATH_TO_BRANCH
这实际上是 git svn init 所做的——其他 git svn 命令只是将事物合并在一起,等等。您可以 git svn init 和/或复制使用 git svn clone 克隆的 SVN 存储库的布局,您应该能够拉入本地分支,或获取,等等。花点时间阅读 git svn 的手册页,你应该不会有太多的麻烦来拼凑一些东西;如果你这样做了,freenode 上的#git 是一个很好的资源。所以,这应该是可能的,没有太多麻烦,但我不知道该怎么做。