这应该是可能的,但你需要玩git svn
的更深奥的功能之一:-R
(远程名称选项)。
创建一个git svn
存储库使用git svn init
作为正常的本地代码,然后看看.git/config
文件。将会有一个名为[svn-remote "svn"]
的部分。复制整个部分,将其重命名为[svn-remote "external"]
,编辑url
字段以指向外部存储库,然后更新其他字段以为其指定唯一的名称。
我期望配置文件的相关部分看起来像这样大功告成后:
[svn-remote "svn"]
url = http://local.svn/repository/root
fetch = trunk:refs/remotes/trunk
branches = branches/*:refs/remotes/*
tags = tags/*:refs/remotes/tags/*
[svn-remote "external"]
url = http://external.svn/repository/root
fetch = trunk:refs/remotes/ext-trunk
branches = branches/*:refs/remotes/ext-*
tags = tags/*:refs/remotes/tags/ext-*
如果你现在要做git svn
操作,它会从本地存储库中取出。如果您添加了-Rexternal
,您将转而使用外部存储库。要进行初始抓取,您需要同时运行以下两项:
git svn fetch
git svn fetch -Rexternal