Não consigo realizar uma atualização SVN em uma cópia de trabalho no Linux, sendo o erro “Incapaz de abrir uma sessão RA_LOCAL para URL”

StackOverflow https://stackoverflow.com/questions/2087634

Pergunta

Eu tenho um servidor Linux que contém 10 repositórios. Eu configurei um compartilhamento de samba para permitir fácil acesso ao diretório do repositório para que eu possa criar repositórios via Windows usando o Tortoisesvn's Create repository here command....

O problema é que os repositórios foram configurados usando o Windows file:/// Caminhos e não os HTTP usando o Tortoisesvn. Estou usando o módulo SVN Apache HTTP. Então normalmente eu especificaria o repositório via http://servername/svn/myrepos.

Tudo isso é bom no Windows, mas eu também preciso usar o cliente SVN Linux e estou tentando fazer o seguinte:

/usr/bin/svn update /path/to/working/copy

Mas estou recebendo o seguinte erro:

svn: Unable to open an ra_local session to URL
svn: Unable to open repository 'file:///R:/myrepos/trunk'

Parece que o erro se relaciona com ele tentando encontrar o repositório correspondente para a cópia de trabalho, mas está usando o arquivo do Windows: /// URL's e deve estar usando os HTTP.

Como posso alterar os repositórios para que eles padrão usem o protocolo HTTP?

Foi útil?

Solução

Não tenho certeza de que entendi qual é o problema, mas se você deseja continuar usando uma cópia de trabalho local, enquanto altera o URL que você usa para acessar o repositório, deseja executar svn switch:

svn switch --relocate file:///my/old/URL http://server/new/URL

Outras dicas

Se você fizer o check -out por meio de um URL, poderá atualizar usando um URL diferente. Como a notação "caminho" é diferente nos dois sistemas, você pode usar o mesmo checkout, a menos que use o svn ou http protocolos. No entanto, isso não tem nada a ver com a criação de repo além do fato de que você precisa expor o repo a um dos protocolos agnósticos da plataforma. Se você pode conferir de qualquer cliente através da http ou svn Então você define tudo corretamente. Você só precisa explodir o seu checkout e conferir novamente usando um protocolo agnóstico da plataforma.

Este é provavelmente um problema de permissão. Eu tinha isso em uma máquina Linux com clientes Linux na mesma máquina. Você não pode simplesmente excluir o sandboxen SVN local na máquina Linux e verificá-los novamente?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top