Windows上的Git和SVN

时间:2009-08-06 15:12:57

标签: svn git msysgit

我正在尝试为我的本地存储库运行git,并使用SVN将我的中央存储库用于CodePlex项目。我下载了最新版本的msysgit,但SVN支持似乎无法正常工作。

以下成功初始化一个新的空存储库,然后卡住:

git svn init https://myproject.svn.codeplex.com
git svn fetch

尝试执行提取后,我得到以下内容:

Error validating server certificate for 'https://myproject.svn.codeplex.com:443'
:
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: *.svn.codeplex.com
 - Valid: from May 23 02:11:05 2009 GMT until May 23 02:11:05 2010 GMT
 - Issuer: redmond, corp, microsoft, com
 - Fingerprint: f0:89:78:18:47:70:e4:dc:27:01:27:9c:6f:44:4c:3f:8a:9b:ad:79
(R)eject, accept (t)emporarily or accept (p)ermanently? p

正如您所看到的,我尝试永久接受证书,但msysgit只是坐着而且从不执行获取。

我做错了吗?支持不存在吗?我从12月份发现了类似的Stack Overflow post。我不确定我所遇到的症状是否相同。

5 个答案:

答案 0 :(得分:3)

根据我的经验,git-svn在Windows上运行不正常。我建议的是将你的git导入放在像github或任何其他git托管的东西上,并在windows上使用“pure”git。这假设您有一个unix(或者更糟的是cygwin,它应该比msysgit工作得更好)来进行git-svn更新。那显然不太理想。

答案 1 :(得分:2)

我不确定为什么,但是从上面的提示回来需要很长时间,询问是否接受证书。等了大约15分钟后,手术就完成了。

答案 2 :(得分:1)

我通过将证书添加到auth-chain来实现这一点。 您必须以.pem格式获取服务器证书的颁发者证书(CA),并将其复制到具有散列名称的certs-directory(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 :(得分:1)

Codeplex和SVN和它们一样慢。这对我有用(不同的项目让你明白了)

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

其中42691是repo中最旧的变更集(或者你想要获取的最旧的变更集),HEAD是... duh,head。

我通过查看history tab in the source code page找到了变更集编号。这是最后一个。

我尝试使用TortoiseGit进行各种设置,但它不会播放,命令行或破坏。

现在去喝杯茶或烤蛋糕,需要一段时间。

如果(在Windows上)您打开资源监视器并在" network"下查找perl.exe。并看到它正在与svn.codeplex.com交谈然后它正在工作。

答案 4 :(得分:-3)

使用http而不使用ssl。 我使用来自sourceforge https://xmlvm.svn.sourceforge.net/svnroot/xmlvm/的fetch 包含此问题,我只需将网址更改为http://xmlvm.svn.sourceforge.net/svnroot/xmlvm/ 它工作正常