Usando git y svn con múltiples desarrolladores

Tengo un repository svn (sin estructura TLB si es que importa) que quiero usar junto con git. Puedo hacer un clon git-svn, trabajar en mis cambios en el repository git y volver a comprometerme con el repository svn cuando haya terminado. Está claro hasta este punto.

No estoy seguro de cómo extender este model de flujo de trabajo a múltiples desarrolladores. Necesito que mi equipo de desarrollo pueda trabajar en un único repository git (el clonado del repository svn) que debería comportarse como un repository de git normal para todos nosotros. En algún momento, cualquier desarrollador debe poder comprometerse nuevamente con el repository svn. es posible? Gracias.

Solutions Collecting From Web of "Usando git y svn con múltiples desarrolladores"

Tuvimos el mismo problema y no encontramos la manera de hacerlo, así que cambiamos a Git completo. Las cosas funcionan bien si solo un report se comunica con svn, pero de lo contrario se está volviendo desorderado realmente rápido. Lo que sucedió es que la twig git-svn tiene su propia vida

Podrías intentar esto
– crear para repo git1 y git2 desde svn.
– hacer un cambio en git 1 y comprometerse a svn
– tire it int git2, haga un git svn rebase y vea qué está pasando …

cuando tratas de sacarlo en git2, tienes que crear una nueva twig que comience desde svn, pero no la sigue. Así que git2 tiene básicamente 2 twigs, el svn one y el git1. Entonces, antes de poder empujar cualquier cosa desde git2 hacia svn, debes fusionar primero la twig git1 con la svn one (incluso si son idénticas). (Podría estar equivocado porque lo he hecho hace un time y tal vez haya una solución)

De todos modos, tuve que hacerlo un par de veces porque cuando cambiamos de 'git-svn' a 'git', creamos el git-repository central antes de que todos terminaran de comprometerse con svn. Tuve que elegir nuevas cosas de svn para volver a ponerlas en el nuevo repository git y eso fue realmente un gran desastre.

Por lo tanto, use solo git o tenga solo un repository conectado a svn.

Estoy viendo esto también, mi forma de recomendar es

  • Usa master para sincronizar con el repository svn y nombres de twigs especiales para rastrear otras twigs de svn, como walko branch en svn, luego en git, es walko-svn
  • use otros nombres para sincronizar con el repository de git.

text alternativo http://larrycai.files.wordpress.com/2013/02/image2.png

Entonces la forma de trabajar es

  • todos los diseñadores se sincronizan desde el repository svn por git-svn clone … , usando master y branch-svn name
  • todos los diseñadores también tienen synchronization con el repository de git, pero mantengan el nombre de la twig superior para svn
  • todos los diseñadores utilizan principalmente el repository de git para queueborar en el desarrollo, como la twig temática
  • cuando la twig temática parece buena, todos los diseñadores pueden volver a establecer la base en la twig principal, este diseñador debe comprometerse con el repository svn y luego (get git-svn-id ), también se los retrotrae a git-repository. (este trabajo se puede hacer automáticamente si se establece el activador svn)
  • entonces el repository de git siempre está sincronizado con svn repo en la twig maestra

Resumen

  • use el repository de git para queueborar en una twig que no sea svn (como el maestro)
  • rebase de vuelta al repository svn desde una twig que no es svn
  • siempre mantenga la synchronization de git repo (maestro) con svn repo

ver mi blog con imágenes http://larrycaiyu.com/blog/2010/07/10/svn-git-integration-1/

Nuestro equipo tenía exactamente el mismo problema y después de un poco de experimentación, logramos crear un puente git-Subversion bidireccional que sincroniza los cambios entre nuestro repository git de equipo y el repository corporativo de Subversion. Vea mi respuesta en https://stackoverflow.com/a/12155474/258772 o eche un vistazo a https://github.com/mrts/git-svn-bridge