【问题标题】:Cloning SVN repository for Git为 Git 克隆 SVN 存储库
【发布时间】:2012-05-17 15:38:23
【问题描述】:

我正在使用由存储库托管公司托管的 SVN 进行源代码控制。我正在考虑将其迁移到 Git 并通过尝试迁移到本地 Git 实例来测试迁移的水域。我已经安装了 Git Extensions v2.31 并安装了我在安装过程中提供的 msysgit 版本。

安装后,我单击“克隆 SVN 存储库”选项并输入 SVN 存储库位置和其他必要的详细信息。单击克隆按钮。然后我在“进程”输出窗口中看到了以下消息(我已经对一些信息进行了脱敏处理):

c:\Program Files (x86)\Git\bin\git.exe svn clone "https://foobar.domain.com/folder/name.svn" "c:/git/"
Initialized empty Git repository in c:/git/.git/
Error validating server certificate for 'https://foobar.domain.com:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: *.domain.com
 - Valid: from Mar 18 13:23:06 2012 GMT until Apr 20 16:16:05 2013 GMT
 - Issuer: GeoTrust, Inc., US
 - Fingerprint: a2:36:f0:ae:8c:c7:a3:f2:be:98:b3:0f:2e:f8:3a:07:9a:94:90:81

此时没有显示任何其他内容,进度条仍在指示进度,但没有真正发生任何事情。该问题似乎与此处报告的类似:Git and SVN on Windows

但是,我什至没有选择拒绝/接受等?有人有什么想法吗?

TIA

【问题讨论】:

    标签: git svn msysgit git-extensions


    【解决方案1】:

    您仍然可以使用 Git 扩展来做到这一点。从 Git Extensions 中打开 Git Bash 并运行您在使用 GUI 时看到的命令:git svn clone "https://foobar.domain.com/folder/name.svn" "c:/git/" 这将为您提供您在链接到的其他 SO 问题中看到的临时/永久拒绝/接受选项。

    如果您已经尝试过“克隆 SVN 存储库”选项并且从未看到所描述的成功,那么您的本地存储库实际上已经设置好了,只是还没有填充任何文件。在这种情况下,您不再需要进行克隆,只需进行一次提取即可。在您尝试克隆的项目上运行 git svn fetch 也会为您提供拒绝/接受/等选项。

    【讨论】:

    • 使用 Git Bash 时,您可以永久接受证书,然后再返回使用 Git Extensions(或 TortoiseGit)。
    • 我更喜欢在 git clone 命令中添加“svn”,所以我相信这个答案是提供的最好的答案。
    【解决方案2】:

    我建议您尝试使用SmartGit 进行克隆。它是否基于另一个引擎,而不是 git-svn 甚至 SVN,所以我认为你不会遇到这个问题。更喜欢 SmartGit 的原因还有很多:它将分支、标签、忽略、EOL 等 SVN 概念转换为相应的 Git 概念,而 git-svn 没有。

    【讨论】:

      【解决方案3】:

      如果您不介意使用终端并更好地了解 git 的工作原理,我建议您使用git bash。否则,您应该使用 syntevo 的SmartGit,因为它还提供不同的引擎和密钥管理,而且 IMPO,它是 Windows 中最好的 GUI 工具。

      【讨论】:

        【解决方案4】:

        看看SmartGit。它的 SVN 集成支持比 git-svn 更多的功能,并且它建立在不同的 SVN 客户端库之上,通常可以很好地处理各种身份验证场景。

        【讨论】: