如何在磁盘上使用带有SVN存储库的git-svn?

时间:2013-01-17 03:35:43

标签: git svn git-svn wget git-clone

我想使用git-svn使用远程SVN存储库。我一直试图用git svn clone -s REPO_URL下载它,但因为我的网络连接不是很好而且回购非常大,所以它超时了。

所以,相反,我计划使用SVN客户端检出整个仓库,然后让git-svn在事后处理它。但这可能吗? git svn clone -s负责处理所有这些事情(即设置远程URL,导入历史记录,识别远程分支等),但由于我以另一种方式下载repo,我不知道我需要什么命令跑来设置它。

2 个答案:

答案 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存储库的最新版本,并在此基础上构建您的历史记录。