git - 如何克隆本地 svn 存储库?

Posted

技术标签:

【中文标题】git - 如何克隆本地 svn 存储库?【英文标题】:git - how can I clone local svn repository? 【发布时间】:2013-02-28 17:46:48 【问题描述】:

我完全找不到任何解释我应该如何指定现有 svn 存储库的位置。

换句话说 - 在

中应该使用什么作为 URL
git svn clone URL

什么时候svn仓库是本地的?

【问题讨论】:

【参考方案1】:

你应该可以这样成功:

git svn clone file:///e/svn_repo_on_E_drive

类似于 svn checkout 命令:

svn co file:///e/svn_repo_on_E_drive

file:// 用于执行 CMD 提示的当前驱动器上的文件夹,file:///d/some_folder 用于D:\some_folder

注意:Windows 上文件链接中多余的/ 和删除的冒号:file://e:/svn_repo_on_E_drivefile:///e/svn_repo_on_E_drive

【讨论】:

我在使用这种方法时遇到了问题,直到我从文件 URL 上的驱动器中删除了冒号 (:)。通常,在 Windows 中,您会看到这个 file:///e:/svn_repo_on_E_drive ,但对于 git,您需要从驱动器中删除“:”,留下 file:///e/svn_repo_on_E_drive 谢谢@kurast,我会让答案更明显以删除它。 对我来说,它不适用于 /// 和其他东西的任何组合:无法创建会话:无法连接到 URL 'file://d/temp/xxxx' 的存储库: 本地 URL 'file://d/temp/xxxx' 在 /mingw64/share/perl5/site_perl/Git/SVN.pm 第 144 行包含不受支持的主机名。 使用 3 /// 我得到的结果略有不同: $ git svn clone file:///d/temp/xxxx/ 在 D:/yyyy.lt/git/xxxx/ 中初始化空的 Git 存储库.git/ 无法创建会话:无法连接到 URL 'file:///d/temp/xxxx' 的存储库:无法在 /mingw64/ 打开存储库 'file:///d/temp/xxxx' share/perl5/site_perl/Git/SVN.pm 第 144 行。 您的回复保存了我要转储的旧仓库。无法在其他任何地方找到:file://e:/svn_repo_on_E_drive → file:///e/svn_repo_on_E_drive【参考方案2】:

对于本地存储库,您使用file:// URL,与用于执行操作的相同 使用普通的 svn 客户端结帐。

如果您尝试复制整个历史记录,并使用git svn clone --stdlayout,只需使用您将用于通过 svn 检出主干的 URL 减去末尾的/trunk 部分。

【讨论】:

所以 file:///X:/path/to/repos 应该可以工作吗?很奇怪,因为它失败了“无法打开存储库:无法打开到 URL 的 ra_local 会话:无法打开存储库” file:// URL 对我有用。不知道驱动器说明符部分,我不使用 Windows。 从您上次的评论中,我想您使用的是 Windows。尝试删除第三个“/”。也许它不起作用,因为有一个错误:code.google.com/p/tortoisegit/issues/detail?id=1402 您需要从驱动器号中删除冒号 ( : )。因此,您需要使用 file:///X/path/to/repos 而不是 file:///X:/path/to/repos

以上是关于git - 如何克隆本地 svn 存储库?的主要内容,如果未能解决你的问题,请参考以下文章

如何检查远程 git 存储库的配置?

如何使用 EGit 克隆创建 Eclipse 项目

如何在 git-svn 中设置上游分支?

Git - 如何从存储库(devops)中删除文件而不在本地克隆它

如何将本地git存储库推送到svn

如何从 Docker 容器克隆 Git 存储库