Convierta un pago SVN para usar git (git-svn)
-
05-07-2019 - |
Pregunta
Trabajo con software que se guarda en svn para control de versiones.Me gustaría usar git (git-svn), sin embargo, el software requiere mucha instalación y configuración antes de poder usarse.Hay herramientas que se encargan de toda la configuración, incluida la verificación de todo el código a través de svn.
Toda la documentación para git-svn (que he podido encontrar) requiere una nueva compra, usando git-svn.
¿Hay alguna manera de convertir un pago svn existente para que pueda usar git-svn?
Solución
Podrías hacer algo como esto:
- Haga un clon completo de su árbol SVN usando git-svn, en un directorio temporal. Asegúrese de utilizar exactamente la misma revisión que su pago actual.
- Mueva el " .git " carpeta desde el nivel superior del pago de git-svn al nivel superior del pago de SVN.
- Entonces tendrás que decirle a Git que ignore el " .svn " directorios, o puede eliminarlos todos.
- Eliminar el pago de git-svn.
- Ahí, ahora puedes manipular tus archivos existentes con Git y git-svn.
- Haga un " estado de git " y espero que diga que no hay cambios.
Otros consejos
No. Un clon git-svn convierte todo el repositorio en git. Los pagos de SVN no tienen el repositorio completo y, por lo tanto, no se pueden clonar. Esta es la principal ventaja de cambiar de SVN o CVS a un sistema distribuido (como git).
Supongo que probablemente quieras mantener el historial. Sin embargo, en caso de que usted (o cualquier otra persona que tropiece con esta página) no necesite historial, puede usar & Quot; export & Quot; característica como se explica aquí: https://stackoverflow.com/a/419475/2437521 .
Otra forma de hacer esto, que no modifica la copia de trabajo original de Subversion y no requiere que la copie, es usando un parche:
- Haga una clonación completa de su árbol de Subversion usando git-svn, en un nuevo directorio que será el repositorio de Git.Asegúrese de utilizar exactamente la misma revisión que su pago actual.Puedes usar
git reset --hard :/r<revision>
para forzar que sea la misma revisión después de la clonación, donde<revision>
es la revisión a la que se actualiza la copia de trabajo de Subversion (consulte esto usandosvn info
allá). cd
a su copia de trabajo de Subversion.- Usar
svn status
para asegurarse de que todos los archivos nuevos estén marcados conA
(o usarsvn add
para agregarlos), y todos los archivos eliminados están marcados conD
(o usarsvn rm
para eliminarlos). - Correr
svn diff >patch.diff
para crear un archivo de parche. - Copiar
patch.diff
a la parte superior del repositorio Git creado anteriormente. cd
a la parte superior del repositorio Git creado anteriormente.- Correr
git apply -p0 patch.diff
para aplicar el parche en el árbol de trabajo del repositorio de Git.
Ahora puedes realizar los cambios usando git status
, y git add
/git commit
para guardarlos en su repositorio local.