repositorio - tortoise svn server
Cambiar la URL del repositorio SVN (3)
Mi estructura SVN actual:
Path: .
URL: svn://someaddress.com.tr/project
Repository Root: svn://someaddress.com.tr
Repository UUID: -------------------------------------
Revision: 10297
Node Kind: directory
Schedule: normal
Last Changed Author: ----
Last Changed Rev: 9812
Last Changed Date: 2010-12-20 17:38:48 +0100 (Mon, 20 Dec 2010)
Pero nuestro proyecto (de ahí el servicio SVN) funcionará sobre sub.someaddress.com.tr
lugar de someaddress.com.tr
(someaddress.com.tr será redirigido a otro lugar pronto).
Como es el servidor de desarrollo, no podía estar seguro de qué hacer. ¿Necesitaré usar svn switch
o svn switch --relocate
? Además, ¿tendré que cambiar svn root someaddress.com.tr o la rama del proyecto someaddress.com.tr/project ?
Ampliar la URL antes y después puede darle cierta tranquilidad:
svn info | grep URL
URL: svn://svnrepo.rz.mycompany.org/repos/trunk/DataPortal
Relative URL: (...doesn''t matter...)
Y verificando tu versión (ser> 1.7) para asegurar, svn relocate
es lo correcto para usar:
svn --version
Por último, además de lo anterior, si el cambio de su url del repositorio también implica un cambio de protocolo, es posible que deba indicar el URL de antes y después (también vea 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 de curso. Después de eso, ten la buena sensación de que todo fue sin problemas:
svn info | grep URL:
Si te apetece, un poco más de autoconfianza, la nueva URL de svn repo está conectada y funcionando:
svn status --show-updates
svn diff
Dado que el servidor Apache Subversion se moverá a este nuevo alias DNS: sub.someaddress.com.tr
:
Con Subversion 1.7 o superior, use
svn relocate
. La reubicación 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 usa TortoiseSVN, puede seguir las instrucciones del Manual de TortoiseSVN . Si usa la interfaz de línea de comando 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
Siga usando
/project
dado que los contenidos reales de su repositorio probablemente no cambien.
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
En mi caso, el comando svn relocate
(así como también svn switch --relocate
) falló por alguna razón (tal vez el repositorio no se movió correctamente, o alguna otra cosa). 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 imaginarme que muchas cosas se pueden romper (así que haz una copia de seguridad de tu copia de trabajo o prepárate para volver a realizar el proceso de todo el repositorio si algo sale mal).
La dirección repo y su UUID se guardan en el .svn/wc.db
base de datos SQLite .svn/wc.db
en su copia de trabajo. Simplemente abra la base de datos (por ejemplo, en el navegador SQLite), busque la tabla REPOSITORY y cambie los valores de la columna root
y uuid
por los nuevos. Puede encontrar el UUID del nuevo repositorio emitiendo svn info NEW_SERVER
.
Nuevamente, trate esto como un método de último recurso.