Pregunta

Mi flujo de trabajo normal para crear un nuevo repositorio con subversión es crear nuevos repositorios, hacer una verificación de la raíz de los repos, crear mis etiquetas de sucursales y carpetas de troncales y colocar en el troncal mis archivos iniciales. Luego hago una confirmación de esta " importación inicial " ;, borro los repositorios revisados ??de mi disco duro y hago una verificación del tronco. Entonces puedo empezar a trabajar.

Sin embargo, cuando se trata de una importación grande, piense en cientos de megas, y en el alojamiento de control de versiones fuera del sitio (basado en http), esta importación inicial puede llevar bastante tiempo. Lo que es peor, después de comprometerme, necesito revisar este tronco masivo de nuevo.

¿Existe una forma con subversión para utilizar la copia local del tronco sin realizar una comprobación de nuevo de los datos que ya están allí?

¿Fue útil?

Solución

Hay - se denomina " importación in situ " y se trata en las Preguntas frecuentes de Subversion aquí:

http://subversion.tigris.org/faq.html#in -place-import

Lo que realmente estás haciendo es crear un nuevo proyecto vacío en el repositorio, revisar el proyecto vacío de tu carpeta local, que convierte tu carpeta en una copia de trabajo, y luego agregar todos tus archivos (existentes) a ese 'vacío 'proyecto, por lo que se agregan al repositorio cuando haces un svn commit.

Otros consejos

Estoy de acuerdo con la " importación in situ " procedimiento y también utilizando un script para la estructura TTB (upvoted ambos).

Solo una pequeña pista:

No debe importar un número enorme (diez de miles) en un solo compromiso, si usa http (s), ya que el tiempo para mostrar el historial de versiones se incrementa el número de entradas añadidas . La razón de este comportamiento es que apache tiene que autenticar todas las rutas agregadas contra el archivo svnaccess (por supuesto, solo si habilitó la autorización basada en la ruta). Esto puede hacer que su repositorio quede inutilizable, ya que todos los archivos tendrán que esperar en un registro svn para esta gran velocidad.

Debes dividir grandes importaciones en niveles de directorio

Por lo general uso " svn mkdir " para crear el troncal / etiquetas / ramas directamente en el servidor inmediatamente después de crear el repositorio. Luego puedo revisar el tronco vacío, mover mis archivos iniciales a ese directorio, agregarlos y confirmarlos y comenzar a trabajar.

svn checkout --force le permite registrar una copia de trabajo 'sobre' una ruta existente. Mantiene sus archivos antiguos y agrega archivos que están solo en su repositorio.

Para crear su repositorio: Puede ejecutar múltiples comandos mkdir a un repositorio en un solo compromiso usando el comando 'svnmucc' que está disponible en la mayoría de las distribuciones de Subversion (por ejemplo, SlikSVN ).

Escriba svnmucc sin argumentos para obtener ayuda.

Si ha desprotegido una única carpeta, ha copiado sus archivos en ella, ejecute svn add y svn commit ; no es necesario que elimines los archivos y vuelvas a realizar el proceso de pago.

Use los archivos en su lugar: una vez que se han confirmado como usted describe, están listos para ser trabajados.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top