Não sei como convencer o Mercurial a apresentar o certificado, mas você pode usar svnsync
para fazer uma cópia local do svn repo e então executar hg convert
contra isso. Ele deve tornar a conversão mais rápida de qualquer maneira.
Estou tentando converter um repositório svn existente em um repositório mercurial com o seguinte comando
hg convert <repository> <folder>
Meu problema é que a autenticação do repositório svn é feita com certificados p12. Estou um pouco perdido em como configurar o certificado para o cliente hg para que eu possa puxar o repositório svn e convertê-lo. Atualmente, se eu tentar executar o comando acima, obtenho
initializing destination hg-client repository abort: error: _ssl.c:480: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
Em outras palavras, não é possível encontrar o certificado necessário. A questão é, como configuro meu cliente hg para que ele possa usar meu certificado?
Estou usando o cliente de linha de comando hg no linux.
EDIT: Apenas como um esclarecimento, não é o servidor que tem um certificado, não é o cliente que tenta autenticar o servidor. É o cliente que tem um certificado que o servidor precisa para autenticar o cliente.
Não sei como convencer o Mercurial a apresentar o certificado, mas você pode usar svnsync
para fazer uma cópia local do svn repo e então executar hg convert
contra isso. Ele deve tornar a conversão mais rápida de qualquer maneira.
Há uma solução alternativa que pode ajudar, se você der uma olhada no svn repo primeiro e permanentemente aceitar o certificado, então hg deve usar isso e converter o repo.
Então, primeiro confira o repositório desejado com o subversion:
svn co https://yoursvn.com
O Subversion deve perguntar sobre o certificado, digite p para aceitá-lo permanentemente.
(R)eject, accept (t)emporarily or accept (p)ermanently? p
Agora, não nos importamos com a cópia que você acabou de fazer, só queremos criar uma exceção para o certificado. Se você agora executar o comando hg convert original, esperamos que ele funcione usando o certificado que apenas permanentemente permitido:
hg convert <repository> <folder>
Deixe-me saber se isso funciona, já que estou prestes a mudar para o mercurial com um cliente em breve e isso pode ser um problema. Consulte este link para obter mais informações sobre a solução alternativa acima.
Outra alternativa (e sim, eu percebo que esta questão é de vários meses), é converter do seu svn checkout. Apenas certifique-se de fazer um checkout completo (geralmente um nível acima de seu / trunk) e execute hg convert
sobre isso.