2011-01-14 22 views
5

Recientemente cambiamos nuestro servidor SVN de un centro de datos a otro y la dirección IP del servidor ha cambiado. Usé svn switch --relocate old_url new_url para actualizar mi copia de trabajo real, y eso fue feliz.git-svn después de mover un repositorio SVN?

Sin embargo, hago la mayor parte de mi trabajo en una versión local de git del repositorio (usando git-svn, obviamente). Después de mover el servidor SVN, he actualizado la URL para la cesión temporal en .git/config, pero cuando trato de usar dcommit, recibo este error:

Unable to determine upstream SVN information from HEAD history. 
Perhaps the repository is empty. at /home/me/libexec/git-core/git-svn line 520. 

¿Qué me falta?

Respuesta

4

En general, esto no es algo que git-svn admita directamente. El mayor obstáculo es que git-svn usa el "git-svn-id" (visible en el registro de confirmación para cada confirmación) para identificar de manera única las confirmaciones de SVN, y la URL SVN es parte de esta ID. Si la URL cambia, prácticamente invalida todo su historial existente.

Hay soluciones alternativas que se describen here que parecen que deberían funcionar, pero no son exactamente simples y yo no he probado ninguna de ellas.

+0

Gracias. Temía que este fuera el caso, pero no estoy demasiado preocupado por perder mi trabajo. Siempre puedo incorporar mis ramas después de volver a importar las cosas de SVN. – codekoala

+1

He intentado con la solución descrita en el enlace en [GitSvnSwitch] (https://git.wiki.kernel.org/index.php/GitSvnSwitch) y me funcionó. – ldav1s

+0

Sí, usando el mismo 'url' y' rewriteRoot' en mi '.git/config' también lo hice. ¡Fantástico! – codekoala

0

Es posible hacer esto con git-svn clonando repositorios, fusionándolos, y luego reconstruyendo los metadatos git-svn.

Ver mi respuesta here.

Cuestiones relacionadas