¿Puedo importar de SVN a Git sin conectarme a un server remoto?

Posible duplicado:
Cómo gitsvn clonar las últimas n revisiones desde un repository de Subversion?

Estoy tratando de mover mis complementos de WordPress alojados en el repository masivo de complementos de WordPress a Git.

Me cansé de usar git-svn y me está tomando demasiado time (más de 4-5 horas para un único complemento) y tengo cerca de 20 complementos para migrar.

Tengo el repo registrado SVN en mi máquina. ¿Hay alguna forma de que podamos importar el repository SVN en Git simplemente usando la información del historial almacenada en las carpetas .svn sin conectarnos al server SVN?

No tiene el repository SVN en su máquina. Usted tiene una copy de trabajo .

A diferencia de Git, SVN no descarga el repository completo, con todo el historial, al extraer una copy de trabajo. Simplemente descarga las últimas versiones de los files.

Entonces, no, es imposible get el historial de un proyecto SVN a partir de una copy de trabajo.

TL; DR

No. Sin embargo, tienes algunas alternativas.

Historia de Git y SVN

La forma en que Git y SVN manejan la historia es completamente diferente. Cuando revisa un repository SVN, el directory .svn solo contiene la confirmación más reciente para que pueda ser comparado con el directory de trabajo o revertido.

Git, por otro lado, clona toda la historia. Existen ciertas excepciones, como los clones superficiales , pero para la mayoría de los propósitos, Git necesitará un repository completo para hacer cosas como mostrar el historial o calcular diffs.

Si no te importa un historial truncado, puedes mirar las banderas --depth o --revision para git-svn . Estos indicadores le permitirán limitar el número de revisiones que recupera desde el repository SVN, el historial de operaciones y la funcionalidad de la velocidad.

Sin embargo, aunque podría importar su copy de trabajo SVN como un nuevo repository de Git, los directorys .svn no tienen ningún historial real. Debe conectarse al repository SVN para acceder al historial, por lo que no puede importar desde una copy de trabajo.

Espejo Subversion primero

Sin embargo, puede considerar duplicar el repository de Subversion y luego ejecutar git-svn localmente contra su mirror. Aún necesitará una copy completa de su repository SVN, pero duplicar el repository lleva less time que recuperar los commits de Subversion uno a la vez a través de una connection de networking con git-svn .

Tenga en count que aún no puede hacer lo que desea, pero esta es otra alternativa viable para mejorar la velocidad de las migraciones SVN-> Git. Además de un aumento de velocidad, esto también dará como resultado una historia más completa en el lado de Git.

  1. .svn dir en Working Copy no contiene el historial completo de repo, solo "copy prístina" de datos en WC (y algunos metadatos adicionales) – no podrás get el historial completo sin interactuar con el repository
  2. Si desea terminar el process más rápido, puede intentar hacerlo, por el costo del espacio discal local

El flujo de trabajo sugerido puede ser algo como esto:

  • Obtenga SVN-repos local (file: /// alcanzado), separado por el complemento (un complemento – un repository). De esta forma obtendrás (en la etapa de conversión) el acceso más rápido a los datos de origen y la innecesidad de las confirmaciones de filtrado de partes del repository no relacionadas (para el plugin procesado). Usar svnadmin dump| svndumpfilter svnadmin dump| svndumpfilter de svnrdump | svndumpfilter svnrdump | svndumpfilter para preparar vertederos limpios. Probablemente, un svnrdump completo y filtrándolo más tarde cat DUMP| svndumpfilter include cat DUMP| svndumpfilter include fill sea incluso más eficiente en el time;
  • Importe a pequeños repos de Git, preparado en el paso anterior.