Nuestra empresa utiliza (y admite) 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.git svn dcommit sin rebasing
que estaba probando el escenario con depósitos siguientes:
- SVN-repositorio - éste es mantenido por nuestra empresa y nuestro equipo debe pasar todos los cambios que hay en algún momento
- git-svn-clon - este es el repositorio git clonado desde SVN arriba - todos los desarrolladores de proyectos deben enviar sus commits aquí
- 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 pulsación del repositorio git del desarrollador al repositorio-clone git-svn tengo que rebase repositorio del desarrollador tan pronto como los cambios se propaguen a SVN y se vuelvan a configurar. Lo que quiero lograr es evitar volver a basar después de cada empuje.
Tenga en cuenta que supongo que cada desarrollador de proyecto utilizará solo el repositorio de git y nadie usará SVN directamente.
Pude realizar este comportamiento manualmente comprobando cada commit de git uno por uno en el repositorio 'git-svn-clone' después de enviar y confirmar esos cambios al 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.
P.S .: --no-rebase
opción para git svn dcommit
no ayuda ya que después de la primera commit propaga a SVN git svn dcommit
no me permitía cometer más cambios en el SVN hasta anterior se reajusta. Intenté este comportamiento una vez y probablemente podría pasar por alto algo.
En cuanto a no ser capaz de 'sincronizar desde SVN nunca sin hacer rebases'. Estoy bien sin sincronizar desde SVN, todo lo que necesito es sincronizar TO SVN. – Snowbear
En ese caso, usted todavía tendrá que hacer hackeos bastante extensos en git-svn, ya que usa la información en los objetos de confirmación para un montón de cosas, por lo que las reescribe durante la transacción. –
Gracias, Jan. También entendí que incluso resolver este problema no me deja hacer lo que quiero de manera aceptable debido a otros problemas. Probablemente comenzaría a buscar instalar Git en nuestra compañía para que esté disponible sin SVN. Gracias por su respuesta de todos modos. – Snowbear