在Windows上使用Git和SVN

13
我正在尝试在本地仓库中运行git,并将SVN用于CodePlex项目的中央仓库。我下载了最新版本的msysgit,但似乎没有SVN支持。
以下成功初始化了一个新的空仓库,然后卡住了:
git svn init https://myproject.svn.codeplex.com git svn fetch
尝试执行fetch后,我得到以下内容:
验证'https://myproject.svn.codeplex.com:443'的服务器证书时出错: - 该证书不是由受信任的机构颁发的。使用指纹手动验证证书! 证书信息: - 主机名:*.svn.codeplex.com - 有效期:从2009年5月23日02:11:05 GMT至2010年5月23日02:11:05 GMT - 颁发者:redmond、corp、microsoft、com - 指纹:f0:89:78:18:47:70:e4:dc:27:01:27:9c:6f:44:4c:3f:8a:9b:ad:79 (R)拒绝,(t)暂时接受或(p)永久接受?p 如您所见,我尝试永久接受证书,但msysgit只是坐着,从未执行fetch。
我做错了什么吗?支持不存在吗?我在12月份找到了一个类似的Stack Overflow post。我不确定我正在经历的症状是否相同。

1
五年半过去了,我仍然遇到这个错误。我想知道有多少开源项目因为无法克隆而死亡?是的,我知道你可以下载zip文件,但天哪,真的吗? - CAD bloke
5个回答

3

据我的经验,git-svn 在 Windows 上不太好用。我建议将 git 导入到像 GitHub 或其他 git 托管服务上,并在 Windows 上使用“纯” git。这假定你有一个 Unix(或更糟糕的是 cygwin,但应该比 msysgit 好用)来执行 git-svn 更新。显然,这不是理想的解决方案。


4
我在Mac OSX 10.6.5和Ubuntu 10.04上都使用git-svn访问基于Codeplex的SVN仓库,得到了完全相同的响应,因此这似乎不仅是Windows的问题。 - Big Rich

2

我不太确定为什么,在询问是否接受证书的提示框上返回需要相当长的时间。等待约15分钟后,操作才完成。


我让它运行了整整一晚,但在中途超时了。在这里等待没有什么好结果。另外奇怪的是,我尝试检出的项目的源代码页面非常缓慢(需要长达1分钟才能加载页面)。此外,我知道该项目的作者实际上正在使用TeamServer作为后端。这是项目链接:https://v8dotnet.codeplex.com/。我的目标是将其fork到GitHub上。任何帮助都将不胜感激。 - Sergiy Belozorov
@SergiyByelozyorov 是的,那个网站相当混乱。它开始为我克隆,但没有克隆完全。我会联系 CodePlex 上的维护人员或其他人,看看出了什么问题。如果后端主机出现问题,git-svn 将无法工作。 - senfo
打开Windows资源监视器并查看网络流量。 Perl.exe是git-svn可执行文件。如果有字节,则可能正在工作。也许。 - CAD bloke

1

Codeplex和SVN的速度很慢,而且它们已经过时了。以下是我使用的方法(不同的项目,但你可以理解思路)

git svn clone https://iswix.svn.codeplex.com/svn -r42691:HEAD

其中42691是仓库中最古老的变更集(或您想要获取的最古老的变更集),HEAD是...呃,头部。

我通过查看源代码页面上的历史选项卡找到了变更集号码。它是最后一个。

我尝试了各种TortoiseGit设置,但它无法使用,只能使用命令行。

现在去泡杯茶或烤个蛋糕,这需要一些时间。

如果(在Windows上)您打开资源监视器并在“网络”下查找perl.exe,并看到它正在与svn.codeplex.com通信,则表示它正在工作。


1
我通过将证书添加到认证链中使其工作。 您需要获取您服务器证书的颁发者证书(CA)以 .pem 格式,并将其复制到 certs 目录(PATH_TO_GIT\ssl\certs)中,使用一个哈希名称。 可以像这样生成哈希:
C:\> PATH_TO_GIT\bin\openssl.exe x509 -noout -hash -in PATH_TO_CA_CERT.PEM

将CA文件重命名为该命令的输出,并添加“.0”作为扩展名(例如0dbd0096.0)。这样openssl就可以找到CA,从而用于认证您的服务器证书。
在此处查找更多信息:http://gagravarr.org/writing/openssl-certs/others.shtml#ca-openssl

-3

有时您可能无法或不愿意使用普通的http,而需要一个可靠的https连接。 - fragmentedreality
CodePlex不支持SVN的普通http协议。 - Sergiy Belozorov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接