1

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

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

4

2 回答 2

2

啊,看起来不需要SVN客户端。git svn clone可以使用 恢复中断git svn fetch,详见此处。:)

或者,如果您不关心获取存储库的整个历史记录,则可以通过这样做git svn clone -s -rN:HEAD repo_url local_dir来加快下载速度,这只会将存储库从特定修订号 ( N) 克隆到最新提交 ( HEAD)。这大大减少了您必须从 SVN 服务器下载的数据量。

这样就解决了处理大型存储库的问题。但只是为了回答我关于如何让 git-svn 使用已下载到磁盘的 repo 的问题,您可以使用该file://协议进行克隆。示例:git svn clone file:///path/to/repo/

于 2013-01-17T04:49:07.927 回答
0

git-svn 的神奇之处在于在每次修订时下载 Subversion 存储库,这意味着您可以在本地计算机上获得完整的存储库历史记录,就像使用常规 Git 存储库一样。它还提取了有关每个提交的一大堆元数据,例如修订号和提交日志文本。

如果您只是使用wget(或者,更明显的是,svn export)下载 Subversion 存储库,您将没有所有这些信息,也没有获得它的好方法。

如果您不需要本地存储库中的完整历史记录,您可以克隆最新的修订。运行git svn init而不是git svn clone(指定相同的布局参数,例如-s)。然后运行git svn fetch -r HEAD。这只会下载远程 Subversion 存储库的最新版本,并在此基础上构建您的历史记录。

于 2013-01-17T11:04:44.250 回答