He migrado un proyecto de CVS a SVN. Ahora necesito cambiar el nombre de ese proyecto. ¿Cuál puede ser la mejor manera de cambiarle el nombre, manteniendo intacta toda la historia? La carpeta del proyecto contiene unos 100 números de C y sus archivos de encabezado.Renombrar el nombre del proyecto del repositorio SVN
Respuesta
No hay mecanismo incorporado en Subversion para cambiar el nombre de un repositorio.
La mejor opción para mantener la integridad y el historial es realizar un volcado de repositorio del repositorio anterior y luego volver a importar el volcado en un nuevo repositorio.
Escribí una publicación sobre esto aquí: How To Rename an SVN repository.
Usted sólo tendrá que usar la svnadmin utilidad, y luego svnadmin crear un nuevo repositorio, svnadmin dump los contenidos del repositorio anterior y finalmente svnadmin importación el volcado en el nuevo repositorio al que había creado usando svnadmin create.
EDITAR
Si necesita cambiar el nombre de un "proyecto" en el interior del depósito - y por el proyecto supongo que te refieres un directorio - a continuación, sólo hay que utilizar el svn move command. Tenga en cuenta que esto se hace usando el cliente svn, no svnadmin. La sintaxis del comando svn move es svn move SRC DEST
y le permite básicamente preformar un cambio de nombre de un archivo o directorio dentro de su repositorio. Se debe preservar toda la historia para ese archivo (o directorio).
realidad tengo repositorio. Eso cantains varios proyectos. Entre esos proyectos, necesito cambiar el nombre de un proyecto no de un repositorio completo. ¿Hay alguna forma de hacerlo? – thetna
@Minky: ¿Es tu blog una broma del 1 de abril? Para cambiar el nombre de un repositorio, simplemente cambie el nombre del directorio donde reposa su repositorio: ej. si su repositorio está en/opt/svn/my_old_name solo aplique: mv/opt/svn/my_old_name/opt/svn/new_name No hay necesidad de volcado /¡recargar! –
@Penter, gracias por iluminarnos .. –
Para cambiar el nombre de un repositorio, solo tiene que cambiar el nombre de su directorio raíz y generar un nuevo UUID. Suponiendo que el depósito está en /var/svnroot/my_repo
tiene que ejecutar este comando (como root) para cambiar el nombre de un repositorio:
$ mv /var/svnroot/my_repo /var/svnroot/my_new_repo
$ svnadmin setuuid /var/svnroot/my_new_repo
Después de eso, se puede acceder a él a través de su protocolo preferido.
No necesita generar un UUID nuevo mientras se esté moviendo (no copiando) el repositorio original. –
¿Hay alguna prueba para esto? No quiero arriesgarme a hacerlo y dañar mi repositorio. – guerda
@guerda Estuve trabajando con este repositorio movido por un año sin ningún problema, pero ahora no estoy trabajando en la misma compañía. Ya sabes, hacer una copia de seguridad antes de cualquier cambio importante en sus datos;) –
SVN Book \ 5. Administración del repositorio \ Moving and Removing Repositories: repositorio de datos
Subversion está totalmente contenido dentro del directorio del repositorio . Como tal, puede mover un repositorio de Subversion a algún otro ubicación en el disco, cambiar el nombre de un repositorio, copie un repositorio, o eliminar un repositorio por completo el uso de las herramientas proporcionadas por el sistema operativo para los directorios que manipulan
Renombrar es típico en el mismo servidor, por lo que un simple cambio de nombre/movimiento del directorio del repositorio lo hará. Se requiere la llamada de svnadmin setuuid
no, porque no está haciendo una copia y los UUID deben permanecer iguales, por lo que su cliente puede reubicarse fácilmente en la nueva URL del repositorio.
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 del repositorio hace. Por ejemplo, el nombre de host puede cambiar, el esquema de URL o cualquier parte de la URL que conduzca al repositorio en sí. 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 la opción --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/directorios que ejecuta s/OldRoot/NewRoot /.
$ svn checkout file:///tmp/repos test
A test/a
A test/b
…
$ mv repos newlocation
$ cd test/
$ svn update
svn: Unable to open an ra_local session to URL
svn: Unable to open repository 'file:///tmp/repos'
$ svn switch --relocate file:///tmp/repos file:///tmp/newlocation .
$ svn update
At revision 3.
SVN reubicar - Reubicar la copia de trabajo para que apunte a una URL raíz del repositorio diferente.
Sinopsis
svn relocate FROM-PREFIX TO-PREFIX [PATH...]
svn relocate TO-URL [PATH]
Descripción
A veces, un administrador puede cambiar la ubicación (o la ubicación aparente, desde la perspectiva del cliente) de un repositorio. El contenido del repositorio no cambia, pero la URL raíz del repositorio sí lo hace. El nombre de host puede cambiar porque el repositorio ahora se está sirviendo desde una computadora diferente. O, quizás, el esquema de URL cambie porque el repositorio ahora se está sirviendo a través de SSL (utilizando https: //) en lugar de a través de HTTP simple. Hay muchos motivos diferentes para este tipo de reubicaciones de repositorios. Pero idealmente, un "cambio de dirección" para un repositorio no debería ocasionar que todas las copias de trabajo que apuntan a ese repositorio se vuelvan para siempre inutilizables. Y afortunadamente, ese no es el caso. En lugar de obligar a los usuarios a verificar una nueva copia de trabajo cuando se reubica un repositorio, Subversion proporciona el comando svn relocate, que "reescribe" los metadatos administrativos de la copia de trabajo para referirse a la nueva ubicación del repositorio.
La primera sintaxis svn relocate le permite actualizar una o más copias de trabajo por lo que básicamente equivale a un descubrimiento y reemplazo dentro de las URL raíz del repositorio registradas en esas copias de trabajo. Subversion reemplazará la subcadena inicial FROM-PREFIX con la cadena TO-PREFIX en esas URL. Estas subcadenas de URL iniciales pueden ser tan largas o cortas como sea necesario para diferenciarlas. Obviamente, para usar este formulario de sintaxis, necesita conocer tanto la URL raíz actual del repositorio al que apunta la copia de trabajo, como la nueva URL de ese repositorio. (Puede usar svn info para determinar el primero.)
La segunda sintaxis no requiere que conozca la URL raíz actual del repositorio con la que está asociada la copia de trabajo, solo la nueva URL del repositorio (TO-URL) a lo que debería estar apuntando. En esta forma de sintaxis, solo una copia de trabajo puede ser reubicada a la vez.
Ejemplos
Vamos a empezar con una copia de trabajo que refleja una URL repositorio local:
$ svn info | grep URL:
URL: file:///var/svn/repos/trunk
$
Un día, el administrador decide cambiar el nombre del directorio del repositorio en el disco.Nos perdimos la nota, por lo que vemos un error la próxima vez que intentemos actualizar nuestra copia de trabajo.
$ svn up
Updating '.':
svn: E180001: Unable to connect to a repository at URL 'file:///var/svn/repos/trunk'
Después de acorralar al administrador por las máquinas expendedoras, nos enteramos sobre el repositorio que se mueve y se les dice la nueva URL. Sin embargo, en lugar de verificar una nueva copia de trabajo, simplemente le pedimos a Subversion que reescriba los metadatos de la copia de trabajo para que apunte a la nueva ubicación del repositorio.
$ svn relocate file:///var/svn/new-repos/trunk
$
Subversion no nos dice mucho acerca de lo que hizo, pero la operación apogeo libre de error es realmente todo lo que necesitamos, ¿verdad? Nuestra copia de trabajo es funcional para operaciones en línea nuevamente.
$ svn up
Updating '.':
A lib/new.c
M src/code.h
M src/headers.h
…
Por defecto, SVN reubican atravesará todas las copias de trabajo externas anidadas dentro de su copia de trabajo y tratar de reubicación de esas copias de trabajo, también. Use la opción --ignore-externals
para deshabilitar este comportamiento.
Buenos detalles, explicaciones e historia. Información muy útil. Incluso si no aborda directamente el OP. –
En primer lugar llegar a saber dónde está la carpeta
\Repositories
con domicilio en, (defautC:\Repositories
)Después de que cambiar el nombre del repositorio que desea, dentro de esa carpeta
/Repositories
. (Windows)Si está utilizando eclipse, deseche la ubicación del repositorio anterior en los repositorios SVN y vaya al
New->Repository Location...-> your new repository name
. Eso es.
- 1. Problema del navegador del repositorio SVN
- 2. Tortoise SVN creando el problema del repositorio
- 3. ¿Cómo localizo el directorio del repositorio SVN?
- 4. cambiar el nombre del proyecto y el nombre del paquete
- 5. Configuración del repositorio maven específico del proyecto
- 6. Obtener el nombre del proyecto del proyecto WPF
- 7. ¿Copia parte del repositorio SVN a nuevo repositorio?
- 8. ¿Debe renombrar un proyecto en Eclipse también cambiar el nombre de la carpeta del proyecto en el sistema de archivos?
- 9. Eliminando una carpeta del repositorio svn
- 10. Eliminar archivo con todo el historial del repositorio svn
- 11. ¿Es posible cambiar el nombre del directorio en el repositorio por svndumpfilter?
- 12. Borrar todos los archivos del repositorio svn
- 13. ¿Cómo obtener svn URL del repositorio remoto?
- 14. Django: la función del nombre del proyecto
- 15. cambiar el nombre del proyecto androide
- 16. Cambiando el URL del repositorio svn en la propiedad externa
- 17. Cambiar el nombre del proyecto del equipo TFS2010
- 18. Buscar en el repositorio SVN para un nombre de archivo
- 19. ¿Puede svn "ignorar" los archivos eliminados o eliminarlos del repositorio?
- 20. Copiar el repositorio SVN
- 21. Verificando el repositorio svn sin archivos .svn
- 22. Restaurar archivo eliminado del repositorio
- 23. Subversion (svn) preguntas del principiante
- 24. Mover el directorio a través del repositorio SVN usando Tortoise SVN
- 25. Convertir el repositorio mercurial al repositorio svn
- 26. Obtener svn log del repositorio, no funciona copiar
- 27. Toma de respaldo del repositorio SVN con historial completo
- 28. Proyecto SVN actual - cambiar nombre de host
- 29. Publicar un repositorio "git svn"
- 30. Estrategias de copia de seguridad del repositorio SVN
Si está utilizando [VisualSVN Server] (https://www.visualsvn.com/server/), puede simplemente haga clic derecho en un repositorio en el MMC del Administrador de VisualSVN Server y seleccione "Cambiar nombre" –