【问题标题】:git - how can I clone local svn repository?git - 如何克隆本地 svn 存储库?
【发布时间】:2025-11-26 09:20:03
【问题描述】:

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

换句话说 - 在

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

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

【问题讨论】:

    标签: git clone git-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
    最近更新 更多