estoy tratando de usar Git como interfaz a un repositorio SVN con el fin de poder utilizar buenas características de Git como ramificación simple, stashing etc.¿Se puede usar Git-svn en repositorios grandes y ramificados?
El problema es que el repositorio SVN es bastante grande (8.000 rpm) y contiene muchas ramas y etiquetas (antiguas y nuevas).
Es un diseño casi estándar, con una configuración que contiene directivas fetch, branches y tags.
Dado que la rama y la etiqueta más antiguas se refieren a la revisión 10, significa que cada svn fetch
lee todo el historial del repositorio de la revisión 10 y reenvía, lo que puede demorar horas en la conexión lenta.
Si solo hago un seguimiento de la cajuela, está bien, pero aún quiero que git esté al tanto de las nuevas ramas y etiquetas.
Normalmente miro git log -1
en la rama en la que estoy y obtengo la revisión SVN del comentario, así que puedo hacer git svn fetch -r7915:HEAD
o similar. Supongo que eso es lo que hace git svn fetch --parent
. Pero, ¿por qué tengo que hacer esto?
Estoy en Windows, y uso TortoiseGit, que tiene bastante buen soporte para git-svn
, pero como TortoiseGit solo ejecuta git svn fetch
, estoy atascado.
¿Estoy haciendo algo mal? Espero que svn fetch
sea una operación rápida cuando se completa el primer svn clone -s
.
Gracias por responder. No tengo ningún problema con que el clon inicial lleve tiempo, pero que cada operación de recuperación después de eso debe pasar por casi todas las revisiones parece incorrecto. –