我想使用git-svn使用远程SVN存储库。我一直试图用git svn clone -s REPO_URL
下载它,但因为我的网络连接不是很好而且回购非常大,所以它超时了。
所以,相反,我计划使用SVN客户端检出整个仓库,然后让git-svn在事后处理它。但这可能吗? git svn clone -s
负责处理所有这些事情(即设置远程URL,导入历史记录,识别远程分支等),但由于我以另一种方式下载repo,我不知道我需要什么命令跑来设置它。
答案 0 :(得分:1)
啊,看起来不需要SVN客户端。可以使用git svn clone
恢复中断的git svn fetch
,详细信息为here。 :)
或者,如果您不关心获取存储库的整个历史记录,则可以通过执行git svn clone -s -rN:HEAD repo_url local_dir
来加速下载,这只会从特定的修订号({{1})克隆存储库})到最新的提交(N
)。这大大减少了您必须从SVN服务器下载的数据量。
这样就解决了处理大型存储库的问题。但是,回答我关于如何让git-svn使用已下载到磁盘的repo的问题,您可以使用HEAD
协议进行克隆。示例:file://
。
答案 1 :(得分:0)
git-svn执行的魔力是在每个版本下载Subversion存储库,这意味着您可以在本地计算机上获得完整的存储库历史记录,就像使用常规Git存储库一样。它还会提取有关每个提交的大量元数据,例如修订号和提交日志文本。
如果您只是使用wget
(或者更明显的是svn export
)下载Subversion存储库,您将无法获得所有这些信息,并且无法获得良好的获取方式它
如果您不需要本地存储库中的完整历史记录,则可以克隆最新版本。运行git svn init
而不是git svn clone
(指定相同的布局参数,例如-s
)。然后运行git svn fetch -r HEAD
。这只会下载远程Subversion存储库的最新版本,并在此基础上构建您的历史记录。