Estoy planeando hacer una bifurcación de un proyecto de código abierto, pero quiero cambiar a GIT. El proyecto usa SVN, pero no hay TRAC disponible, por lo que no puedo simplemente descargar conjuntos de cambios sin tener SVN en mi PC (sin mencionar que svn diff no permite parches binarios).
¿Hay alguna manera de sincronizar mi repositorio maestro GIT con HEAD/tronco de SVN sin mantener otro proyecto en mi HDD?
El blog muestra cómo convertir un repositorio Git existente que no es git-svn, a un repositorio Git habilitado para git-svn con un nuevo repositorio SVN remoto creado. Puede modificar un poco el flujo de trabajo de vudú para importar un repositorio SVN existente a su repositorio Git:
Importe el tronco como una rama paralela en su repositorio Git existente
Averigüe el rango en la rama maestra que se agregará al tronco, por ejemplo, solo los cambios que comiencen desde la etiqueta v2.0 se agregarán al tronco.
Tronco de rebase
git checkout master
git rebase --onto trunk v2.0 master
Comprometerse con el tronco
git svn dcommit
Una sugerencia de uso: al usar injertos con git-svn, debe asegurarse de que no dcommit confirmaciones vacías. De lo contrario, dcommit fallará. Para filtrar las confirmaciones vacías, intente
git filter-branch --prune-empty
antes de la primera vez dcommit.
Necesito hacer lo contrario: sincronizar GIT con SVN. Me comprometeré con un repositorio GIT.
– jurchiks
8 de enero de 2011 a las 11:44
Usted puede hacerlo también. He modificado mi respuesta para reflejarlo.
– Xiè Jìléi
8 de enero de 2011 a las 11:48
Por lo que he leído, dcommit es para confirmaciones de svn, pero no me comprometeré con svn. Por cierto, usaré EGit para Eclipse, no el cliente de la consola.
– jurchiks
8 de enero de 2011 a las 12:02
Oh. No te comprometerás con el SVN remoto, ¿sí? A continuación, después de git svn clone a su repositorio Git local, puede tratarlo como un repositorio Git normal. No harás nada para dcomprometerte.
– Xiè Jìléi
8 de enero de 2011 a las 12:12
Entonces deberías mencionar EGit en tu pregunta. También estoy usando EGit para que funcione el icono de estado del nombre de archivo. pero principalmente hago trabajo de git fuera de eclipse. Desafortunadamente, todavía no encontré la función git-svn útil en EGit. Tal vez deberías escribir tu propia extensión.
– Xiè Jìléi
8 de enero de 2011 a las 12:30
Dmitri Pavlenko
Si tiene acceso a su repositorio SVN, puede instalar SubGit en ello. Solo corre
$ subgit install path/to/your/svn/repostiory
Toda la sincronización se realizará automáticamente (activada por ganchos SVN y Git). En este caso, no solo el maestro/troncal, sino todas las ramas estarán sincronizadas (aunque puede configurar su comportamiento).
Descargo de responsabilidad: Soy uno de los desarrolladores de este producto.
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información