Pregunta git svn dcommit sin rebasar


Nuestra compañía usa (¡y soporta!) SVN, pero tiendo a usar git. Lo que quiero probar es tener el repositorio git, uno por proyecto, que los desarrolladores del proyecto podrán extraer de este repositorio (y, por supuesto, extraerse uno del otro si así lo desean). Pero todavía quiero enviar todos los cambios al SVN, porque SVN está siendo mantenido por nuestro soporte técnico.

Estaba probando el escenario con los siguientes repositorios:

  1. Repositorio SVN: este es mantenido por nuestra empresa y nuestro equipo debe impulsar todos los cambios allí en algún momento
  2. git-svn-clone - este es el repositorio git clonado desde SVN arriba - todos los desarrolladores de proyectos deben enviar sus commits aquí
  3. git-dev-clone - este es el repositorio git del desarrollador.

El único problema con el uso directo de 'git svn rebase' y 'git svn dcommit' que he notado es que después de cada inserción del repositorio git del desarrollador al repositorio git-svn-clone tengo que volver a establecer el repositorio del desarrollador tan pronto como los cambios Se propagará a SVN y se rebasará. Lo que quiero lograr es evitar volver a basar después de cada empuje.

Tenga en cuenta que supongo que todos los desarrolladores de proyectos utilizarán solo el repositorio de git y nadie usará SVN directamente.

Pude lograr este comportamiento de forma manual comprobando cada commit de git uno por uno en el repositorio 'git-svn-clone' después de presionar y confirmar esos cambios en el SVN usando el cliente SVN. Creo que 'git svn dcommit' hace lo mismo, pero también se sincroniza desde SVN y cambia los identificadores de SHA que me obligan a volver a establecer la base.

PD.: --no-rebase opción para git svn dcommit no ayudó ya que después del primer compromiso se propagó a SVN git svn dcommit no me permitió realizar más cambios en el SVN hasta que el anterior fue reestablecido. He intentado este comportamiento una vez y probablemente podría pasar por alto algo.


6
2018-01-10 20:53


origen


Respuestas:


En realidad es incluso peor que eso ... dCommit cambia las confirmaciones cargadas a SVN (agregando líneas de git-svn-id, cambiando la información de autoría, etc.) incluso si has pirateado dcommit para no tratar de volver a establecer la base.

Básicamente, git-svn no puede sincronizar desde SVN sin hacer rebases. Se está trabajando en una nueva interfaz git <-> SVN que podría eliminar esta limitación, pero aún no está lista.

Me temo que si quieres mantenerte sincronizado con el repositorio SVN, tu escenario no funcionará sin volver a establecer las bases en este momento.


7
2018-01-10 22:14