Pregunta

Tenemos 2-3 pequeños grupos de 2-3 personas. Todos usamos git para local y SVN para repositorio central y git-svn conseguimos sincronización. Esto se trabaja todo el tiempo, excepto cuando queremos compartir nuestro código entre el equipo en sí.

Así que hemos probado git pull, esto crea una gran cantidad de conflictos y no detecta que estamos en el mismo árbol. Se obtiene todos los cambios (igual que el clon entonces pull) Por supuesto que no quiero clonar repo completa. cada vez que desea compartir.

Para sugerir un mejor flujo.

  1. no puede deshacerse de SVN central.
  2. No podemos clonar cada vez.
¿Fue útil?

Solución

designar a un miembro del equipo como el 'hub git', él / ella se sincroniza con el servidor SVN, otros miembros del equipo interactúan con ellos, en lugar del servidor SVN directamente. De esa manera git sabrá que todos los miembros del equipo están en el mismo árbol.

Otros consejos

SubGit parece como una gran alternativa para usted.

SubGit es una solución del lado del servidor, que permite el acceso a Git repositorio de Subversion y viceversa. Esto significa que puede trabajar con un solo repositorio Git, mediante el cliente de Git de su elección.

Necesita instalar SubGit en su repositorio de Subversion vez. Después de eso SubGit se traduce inmediatamente en la revisión svn git commit en cada svn commit y git commit en la revisión de SVN en cada git push.

SubGit es un software de código cerrado, pero es libre para proyectos de código abierto. Para obtener más información, consulte SubGit Documenation .

Para añadir a la respuesta de Chris Huang-Leaver, necesita un punto central para dcommit / rebase con el repositorio SVN.
Que no niega el aspecto "descentralizado" de Git, simplemente permite que cada uno de trabajar, como uno de sus repositorios remotos, uno repo "central" de referencia (es decir, el uno sincronización con SVN)

No hay manera fácil de evitar la carga de clon todo procedente de la (potencialmente enorme) repositorio SVN, debido a que el resultado Git repo no se pueden dividir en submódulos .
Eso deja al menos una "solución", lo que implicaría:

  • crear diferentes Git lado de la principal (que sincronía con SVN)
  • exportar parches desde el repositorio principal
  • aplicar esos parches a cada Git repo que representa un proyecto dentro del repositorio git principal.

Es obvio que necesita ser automatizado, pero un equipo se centraría en un de esos repositorios Git como su cesión temporal "central", y la persona a cargo de la sincronización SVN actualizaría los repositorios más pequeños Git con parches que vienen de la principal (y oculta) repositorio git <=> SVN.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top