git-svn siempre genera hashes únicos

Estoy trabajando en un proyecto durante mucho time alojado en el repository de SVN, y ahora está en process de transición a GitHub.

Actualmente soy el único desarrollador que trabaja principalmente en Git, otros trabajan con SVN. Mi flujo de trabajo es tan simple como: gitsvn clone, git commit, git-svn dcommit, git push. Pero si alguien más también trabajara en Git, tendríamos conflictos al presionar a GitHub, porque `git svn clone 'genera hashes únicos cada vez que lo ejecuta, por lo que para dos clones distintos los historiales son completamente diferentes.

¿Es posible obligar a git-svn a generar hashes iguales para las mismas revisiones de SVN? ¿O hay algún otro esquema de flujo de trabajo que permita trabajar en la misma base de código en Git y SVN simultáneamente?

¿Es posible obligar a git-svn a generar hashes iguales para las mismas revisiones de SVN?

Sí lo es. Ni siquiera tienes que forzarlo. En serio: si git svn clone el mismo repository SVN varias veces con los mismos parameters, obtienes hashes iguales (acabo de probarlo).

Si obtiene hashes diferentes, los parameters durante el clon deben ser diferentes (parameters de ruta, URL de repository SVN …) – o tal vez esté usando versiones diferentes de git-svn .

Mi flujo de trabajo es tan simple como: gitsvn clone, git commit, git-svn dcommit, git push […] ¿O existe algún otro esquema de flujo de trabajo que permita trabajar en la misma base de código en Git y SVN simultáneamente?

"git-svn dcommit, git push": ese es tu problema.

Normalmente, usar Git y SVN al mismo time debería funcionar de inmediato. Una advertencia: no debe presionar / jalar directamente entre los diferentes clones de git svn . Entonces su uso de git push probablemente esté causando el problema. Como explica la página de manual (resaltando la mía):

En aras de la simplicidad y la interoperación con Subversion, se recomienda que todos los usuarios de git svn clonen, obtengan y comprometan directamente desde el server SVN, y eviten todas las operaciones de git clone / pull / merge / push entre repositorys y sucursales de git . El método recomendado para intercambiar código entre git branches y los usuarios es git format-patch y git am, o simplemente'comprometing' al repository SVN.

Si sigues ese consejo, deberías estar bien.