0

I'm trying to convert an existing svn repository to a mercurial repo with the following command

hg convert <repository> <folder>

My problem is that the svn repository's authentication is done with p12 certificates. I'm a bit lost on how to configure the certificate for the hg client so that I can pull the svn repo and convert it. Currently, if I try to run the above command, I get

initializing destination hg-client repository abort: error: _ssl.c:480: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure

In other words, it cannot find the required certificate. The question is, how do I configure my hg client so that it can use my certificate?

I'm using the command line hg client on linux.

EDIT: Just as a clarification, it's not the server that has a certificate, it's not the client that tries to authenticate the server. It's the client which has a certificate that the server needs to authenticate the client.

1

3 Answers 3

1

I'm not sure how to convince Mercurial to present the cert, but you could use svnsync to make a local copy of the svn repo and then run hg convert against that. It should make convert significantly faster anyway.

0

There's a workaround that might help, if you check out the svn repo first and permanently accept the certificate, then hg should be to use this and convert the repo.

So first check out the repo you want with subversion:

svn co https://yoursvn.com

Subversion should then ask you about the certificate, type p to permanently accept it.

(R)eject, accept (t)emporarily or accept (p)ermanently? p

Now we don't really care about the copy you just checked out, we just wanted to create an exception for the certificate. If you now run your original hg convert command, hopefully it will work using the certificate we just permanently allowed:

hg convert <repository> <folder>

Let me know if this works as I'm about to switch to mercurial with a client soon and this might be an issue. See this link for more info on the workaround above.

1
  • It's the client that has the certificate, not the server. In other words, I'm logging in using a certificate and not with a username/password combination. What you are suggesting should work for authenticating the server - unfortunately, that is not the problem I'm having.
    – Kim L
    Jun 2, 2010 at 5:16
0

Another alternative (and yes, I realize this question is several months old), is to convert from your svn checkout. Just make sure you do a complete checkout (generally one level above your /trunk) and run hg convert on that.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .