migrar comparacion git svn git-svn git-checkout svn-checkout

comparacion - Convierta un checkout de SVN para usar git(git-svn)



git-svn download (4)

No. Un clon de git-svn convierte todo el repositorio en git. Las cajas SVN no tienen el repositorio completo y, por lo tanto, no pueden clonarse. Esta es la principal ventaja de cambiar de SVN o CVS a un sistema distribuido (como git).

Trabajo con un software que se guarda en svn para control de versiones. Me gustaría usar git (git-svn); sin embargo, el software requiere mucha configuración y configuración antes de que pueda ser utilizado. Hay herramientas que se encargan de toda la configuración, incluida la comprobación de todo el código a través de svn.

Toda la documentación de git-svn (que he podido encontrar) requiere una nueva comprobación, usando git-svn.

¿Hay alguna forma de convertir un check-in svn existente para que pueda usar git-svn?


Otra forma de hacerlo, que no modifica la copia de trabajo original de Subversion y no requiere que la copie, es usar un parche:

  1. Haz un clon completo de tu árbol de Subversion usando git-svn, a un nuevo directorio que será el repositorio de Git. Asegúrese de utilizar la misma revisión exacta que su pago existente. Puede usar git reset --hard :/r<revision> para forzarlo a ser la misma revisión después de la clonación, donde <revision> es la revisión en la que se actualiza la copia de trabajo de Subversion (vea esto usando svn info allí).
  2. cd a su copia de trabajo de Subversion.
  3. Use el svn status para asegurarse de que todos los archivos nuevos estén marcados con A (o use svn add para agregarlos), y todos los archivos eliminados estén marcados con D (o use svn rm para eliminarlos).
  4. Ejecute svn diff >patch.diff para crear un archivo de parche.
  5. Copie patch.diff en la parte superior del repositorio de Git creado anteriormente.
  6. cd a la parte superior del repositorio de Git creado anteriormente.
  7. Ejecute git apply -p0 patch.diff para aplicar el parche en el árbol de trabajo del repositorio de Git.

Ahora puede ver los cambios usando el git status , y git add / git commit para guardarlos en su repositorio local.


Podrías hacer algo como esto:

  1. Haz una copia completa de tu árbol SVN usando git-svn, en un directorio temporal. Asegúrese de utilizar la misma revisión exacta que su pago existente.
  2. Mueva la carpeta ".git" desde el nivel superior del checkout de git-svn al nivel superior del checkout de SVN.
  3. Luego deberá decirle a Git que ignore los directorios ".svn", o puede eliminarlos todos.
  4. Eliminar el pago de git-svn.
  5. Allí, ahora puedes manipular tus archivos existentes con Git y git-svn.
  6. Haga un "estado de git" y espere que diga que no hay cambios.

Supongo que probablemente quieras conservar la historia. Sin embargo, en caso de que usted (o cualquier otra persona que tropiece en esta página) no necesite historial, puede usar la función "exportar" como se explica aquí: https://.com/a/419475/2437521 .