Git and SVN on Windows

倾然丶 夕夏残阳落幕 提交于 2019-11-29 12:45:05

问题


I'm trying to run git for my local repository and use SVN for my central repository to a CodePlex project. I downloaded the most recent version of msysgit, but the SVN support doesn't appear to be working.

The following successfully initializes a new empty repository and then gets stuck:

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

After attempting to perform the fetch, I get the following:

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

As you can see, I try to permanently accept the certificate, but msysgit just sits and never performs the fetch.

Am I doing something wrong? Is the support not there? I found a similar Stack Overflow post from December. I'm not sure if the symptoms I'm experiencing are the same, or not.


回答1:


git-svn does not work well on windows in my experience. What I would advise is to put your git import on something like github or any other git hosting, and use "pure" git on windows. This assumes you have a unix (or at worse cygwin, which should work better than msysgit I guess) to do the git-svn updates. That's not ideal, obviously.




回答2:


I'm not really sure why, but it takes a pretty long time to come back from the prompt above that asks whether or not to accept the certificate. After waiting about 15 minutes, the operation did complete.




回答3:


I got this working by adding the certificates to the auth-chain. You have to get the issuer-certificate (CA) of your server-certificate in .pem-format and copy it to the certs-directory (PATH_TO_GIT\ssl\certs) with a hashed name. Generate the hash like so:

C:\> PATH_TO_GIT\bin\openssl.exe x509 -noout -hash -in PATH_TO_CA_CERT.PEM

Rename the CA-file to the output of the command and add ".0" as extension (e.g. 0dbd0096.0). This way openssl find the CA wich can be used to certify your server-certificate.

Find more information here: http://gagravarr.org/writing/openssl-certs/others.shtml#ca-openssl




回答4:


Codeplex and SVN are as slow as they are archaic. Here is what worked for me (different project buy you get the idea)

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

where 42691 was the oldest changeset in the repo (or the oldest one you want to fetch) and HEAD is ...duh, the head.

I found the changeset number by looking at the history tab in the source code page. It's the last one.

I tried all sorts of settings with TortoiseGit but it wouldn't play, command line or bust.

Now go make a cup of tea or bake a cake, it will take quite some time.

If (on Windows) you open the Resource Monitor and look for perl.exe under "network" and see it is talking to svn.codeplex.com then it is working.




回答5:


use http without ssl. I use fetch from sourceforge https://xmlvm.svn.sourceforge.net/svnroot/xmlvm/ encomes this issue,and I just change url to http://xmlvm.svn.sourceforge.net/svnroot/xmlvm/ It works fine



来源:https://stackoverflow.com/questions/1239577/git-and-svn-on-windows

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!