這應該是可能的,但你需要玩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