Saltar al contenido

Cambiar la URL del repositorio SVN

Posterior a de esta extensa búsqueda de información pudimos resolver esta problema que suelen tener muchos de nuestros usuarios. Te ofrecemos la respuesta y nuestro deseo es serte de mucha ayuda.

Solución:

Dado que el servidor Apache Subversion se moverá a este nuevo alias de DNS: sub.someaddress.com.tr:

  • Con Subversion 1.7 o superior, use svn relocate. Reubicar se usa cuando cambia la ubicación del servidor SVN. switch solo se usa si desea cambiar su copia de trabajo local a otra rama u otra ruta. Si utiliza TortoiseSVN, puede seguir las instrucciones del Manual de TortoiseSVN. Si utiliza la interfaz de línea de comandos de SVN, consulte esta sección de la documentación de SVN. El comando debería verse así:

    svn relocate svn://sub.someaddress.com.tr/project

  • Continúe utilizándolo /project dado que el contenido real de su repositorio probablemente no cambiará.

Nota: svn relocate no está disponible antes de la versión 1.7 (gracias a ColinM por la información). En versiones anteriores, usarías:

    svn switch --relocate OLD NEW

Comparar la URL antes y después puede darle tranquilidad:

svn info | grep URL

  URL: svn://svnrepo.rz.mycompany.org/repos/trunk/DataPortal
  Relative URL: (...doesn't matter...)

Y verificando su versión (para ser> 1.7) para asegurar, svn relocate es lo correcto para usar:

svn --version

Por último, agregando a lo anterior, si el cambio de URL de su repositorio también implica un cambio de protocolo, es posible que deba indicar el antes y después de la URL (ver también aquí)

svn relocate svn://svnrepo.rz.mycompany.org/repos/trunk/DataPortal
    https://svngate.mycompany.org/svn/repos/trunk/DataPortal

Todo en una sola línea, por supuesto. A partir de entonces, tenga la buena sensación de que todo transcurrió sin problemas:

svn info | grep URL:

Si te apetece, un poco más de seguridad en ti mismo, la nueva URL del repositorio svn está conectada y funcionando:

svn status --show-updates
svn diff

En mi caso, el svn relocate mando (así como svn switch --relocate) falló por alguna razón (tal vez el repositorio no se movió correctamente, o algo más). Me enfrenté a este error:

$ svn relocate NEW_SERVER
svn: E195009: The repository at 'NEW_SERVER' has uuid 'e7500204-160a-403c-b4b6-6bc4f25883ea', but the WC has '3a8c444c-5998-40fb-8cb3-409b74712e46'

No quería volver a descargar todo el repositorio, así que encontré una solución. Funcionó en mi caso, pero en general puedo imaginar que muchas cosas pueden romperse (así que haga una copia de seguridad de su copia de trabajo o esté listo para volver a verificar todo el repositorio si algo sale mal).

La dirección del repositorio y su UUID se guardan en el .svn/wc.db Archivo de base de datos SQLite en su copia de trabajo. Simplemente abra la base de datos (por ejemplo, en SQLite Browser), explore la tabla REPOSITORIO y cambie el root y uuid valores de columna a los nuevos. Puede encontrar el UUID del nuevo repositorio emitiendo svn info NEW_SERVER.

Nuevamente, trate esto como un método de último recurso.

Comentarios y puntuaciones

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *