SVN - Alterar a cópia de trabalho para apontar para o novo caminho svn

87

Eu tenho um Repositório SVN que foi movido para um novo endereço / caminho. No entanto, tenho uma cópia de trabalho com código-fonte não confirmado ainda apontando para o caminho do repositório antigo (agora inválido). Como você altera uma cópia de trabalho para apontar para um novo repositório?

quano
fonte

Respostas:

78

svn switch --relocateestá obsoleto a partir da versão 1.7 do subversion. Em svn relocatevez disso, use o comando.

Leva um FROM-PREFIX TO-PREFIX [PATH...]ou TO-URLcomo argumentos.

Vejo

svn help relocate

Para maiores informações.

Michael Krebs
fonte
58

Use o svn switchcomando com a --relocateopção de linha de comando.

Greg Hewgill
fonte
1
Obrigado. Isso é o que eu usei: svn switch --relocate file: /// Users / user / old_repository / project / trunk file: /// Users / user / new_repository / project / trunk
quano
Não corrige os URLs em svn: externals. Alguma ideia de como fazer isso?
Axel Bregnsbo
26

Usando TortoiseSVN

  1. Clique com o botão direito na cópia de trabalho e selecione 'SVN Switch ...'
  2. No formulário 'Switch to branch', selecione o novo caminho SVN

Usando o comando

  1. Abra o console
  2. Navegue até a cópia de trabalho cd [working copy path]
  3. Escreva o comando svn relocate [new url]
Ahmed Abdallah
fonte
Isto é aplicável apenas se estiver usando o TortoiseSVN, que o autor da postagem não indicou que está usando.
zck
Olá @zck, por favor, note que eu escrevi 2 solução em 1 resposta primeiro TortoiseSVN e a segunda é Command este comando está obsoleto para subversão em geral você pode revisar esta página svn relocate / svn Subcommands
Ahmed Abdallah
Bem, sua resposta foi editada depois que eu comentei para incluir uma forma de linha de comando de fazer isso. Essa resposta da linha de comando já foi postada em junho, então não há necessidade de repeti-la.
chave ZCK
Não, eu posto a resposta em suas palavras atuais minha edição apenas para melhorar a formatação; e acho que o comando que escrevi é mais claro do que o que foi escrito em junho
Ahmed Abdallah
O modo de interface do TortoiseSVN requer um clique em 'relocar', e não alternar. O que faz sentido, dada a linha de comando. Não tenho certeza do que a opção faria - parecia estar tentando acessar a URL antiga e a nova URL, algo que eu não queria fazer.
Gerard ONeill
12

Para ser mais preciso

svn switch --relocate [complete url of the old repo] [complete url of the new repo] 

Por exemplo:

svn switch --relocate  http://svn.repo.com:9880/website/branches  http://svnrepo.com/web/branches 
BTR Naidu
fonte
3

Usando TortoiseSVN tortoisesvn docs

  1. Vá para a pasta raiz da cópia de trabalho
  2. Clique com o botão direito, clique no submenu TortoiseSVN, clique em Relocate.
  3. Insira o novo caminho
Yitzhak Weinberg
fonte
1

Muito simples :

Etapa 1: Abra o prompt de comando / terminal e defina o caminho de trabalho

Etapa 2: execute esta linhasvn switch --relocate http://newurl

Rajesh Loganathan
fonte
0

Eu havia mudado meu servidor svn para forçar o redirecionamento de tudo de HTTP para HTTPS (e poderia ter sido um redirecionamento para qualquer outra URL), e percebi que esse svn relocatecomando estava causando muitos problemas externos. Felizmente descobri que a coisa mais fácil era apenas fazer um svn updatee, devido ao redirecionamento do servidor svn, ele atualizou todos os armazenamentos de URLs na cópia de trabalho local, incluindo os externos.

Gunther Schadow
fonte