2009-05-29 12 views
75

Recientemente he movido el servidor SVN y ahora estoy tratando de reubicar las copias de trabajo de mi computadora al nuevo servidor. Pero obtengo el error más extraño. hago:svn error de cambio - no es el mismo repositorio

svn switch http://99.99.99.new/svn/company/project/trunk/web 

pero me sale

svn: 'http://99.99.99.old/svn/company/project/trunk/web' 
is not the same repository as 
'http://99.99.99.new/svn/company/project' 

el movimiento fue hecho con el volcado e importación ... y la raíz repo es en http://99.99.99.new/svn/company/project

¿Ustedes tienen alguna idea de ¿Qué podría estar mal? muchas gracias

Respuesta

127

trate de usar

svn switch --relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web 

Como señaló Sporino en los comentarios, ya que Subversion 1.7, hay un comando separado relocate:

svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web 
+0

gracias .. funcionó: D –

+0

1, mientras que en realidad encontramos esta buscando una respuesta :) – Unreason

+0

1, para la misma como arriba –

1

Es necesario utilizar el --relocate opción:

svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web 

ver svnbook fo r más detalles.

+0

gracias por la sugerencia, pero como escribió BastardSaint necesita especificar tanto de y para URLS –

+1

Solo un poco más del diseño de interfaz de usuario pobre que me molesta acerca de la subversión y SVK. Puede haber casos de uso exóticos que requieren que especifique dos URL, pero las herramientas deberían tomar el maldito valor predeterminado. En SVK, por ejemplo, no debería * NECESITO * especificar el origen y el destino de la combinación, pero lo hago. –

4

Utilice el parámetro de la línea de comando relocate para el comando switch.

svn switch documentation

A veces, un administrador puede cambiar la "ubicación de la base" de su repositorio - en otras palabras, el contenido del repositorio no cambia, pero la URL principal que se utiliza para llegar a la raíz de la el repositorio sí. Por ejemplo, el nombre de host puede cambiar, o el esquema de URL, o tal vez solo la ruta que conduce al repositorio. En lugar de verificar una nueva copia de trabajo, puede hacer que el comando svn cambie "reescribir" el comienzo de todas las URL en su copia de trabajo. Use el comando --relocate para hacer la sustitución. No se modifican los contenidos de los archivos ni se contacta con el repositorio. Es similar a ejecutar un script Perl sobre su copia de trabajo .svn/directories que ejecuta s/OldRoot/NewRoot /.

23

Además, en TortoiseSVN existe la opción "Reubicar", que debe usar en situaciones como estas (en lugar de la opción "Cambiar").

+0

estuvo de acuerdo ... pero yo estaba en ubuntu por lo que las opciones no estaban disponibles :) –

+1

+1 para la ayuda de Tortoise. – jachguate

7

Mi mejor manera de realizar una reubicación SVN es la siguiente:

svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \ 
         new_url_or_repository 

De esta manera, mediante la URL antigua derecha desde el comando svn info, que está seguro de no entrar en una equivocada, que es una de los errores comunes

Si todo es correcto, se le solicitarán los detalles de autenticación para la nueva ubicación, si son diferentes.

Después de emitir el comando, asegúrese de que vuelva a comprobar que el cambio se ha aplicado mirando el parámetro URL, la emisión de

svn info 

Después de mudarse, actualizar su copia de trabajo, para comprobar que todo está bien:

svn update 

Mi 2c ..

Cuestiones relacionadas